7 ms·
Ok it might sound crazy but I actually got the best quality of code (completely ignoring that the cost is likely 10x more) by having a full “project team” using
by mafriese 8mo ago
Ok it might sound crazy but I actually got the best quality of code (completely ignoring that the cost is likely 10x more) by having a full “project team” using opencode with multiple sub agents which are all managed by a single Opus instance. I gave them the task to port a legacy Java server to C# .NET 10. 9 agents, 7-stage Kanban with isolated Git Worktrees.
Manager (Claude Opus 4.5): Global event loop that wakes up specific agents based on folder (Kanban) state.
Product Owner (Claude Opus 4.5): Strategy. Cuts scope creep
Scrum Master (Opus 4.5): Prioritizes backlog and assigns tickets to technical agents.
Architect (Sonnet 4.5): Design only. Writes specs/interfaces, never implementation.
Archaeologist (Grok-Free): Lazy-loaded. Only reads legacy Java decompilation when Architect hits a doc gap.
CAB (Opus 4.5): The Bouncer. Rejects features at Design phase (Gate 1) and Code phase (Gate 2).
Dev Pair (Sonnet 4.5 + Haiku 4.5): AD-TDD loop. Junior (Haiku) writes failing NUnit tests; Senior (Sonnet) fixes them.
Librarian (Gemini 2.5): Maintains "As-Built" docs and triggers sprint retrospectives.
You might ask yourself the question “isn’t this extremely unnecessary?” and the answer is most likely _yes_. But I never had this much fun watching AI agents at work (especially when CAB rejects implementations).
This was an early version of the process that the AI agents are following (I didn’t update it since it was only for me anyway): https://imgur.com/a/rdEBU5I https://imgur.com/a/rdEBU5I
- ggoo 8mo agoIs this satire?
- hereme888 8mo agowhy would it be? It's a creative setup.
- ggoo 8mo agoI just actually can't tell, it reads like satire to me.
- PradeetPatel 8mo agoWhy would it be satire? I thought that's a pretty stranded Agentic workflows. My current workplace follows a similar workflow. We have a repository full of agent.md files for different roles and associated personas. E.g. For project managers, you might have a feature focused one, a delivery driven one, and one that aims to minimise scope/technology creep.
- ionwake 8mo agoI mean no offence to anyone but whenever new tech progresses rapidly it usually catches most unaware, who tend to ridicule or feel the concepts are sourced from it.
- GoatInGrey 8mo agoIt's not satire but I see where you're coming from. Applying distributed human team concepts to a porting task squeezes extra performance from LLMs much further up the diminishing returns curve. That matters because porting projects are actually well-suited for autonomous agents: existing code provides context, objective criteria catch more LLM-grade bugs than greenfield work, and established unit tests offer clear targets. I guess what I'm trying to say is that the setup seems absurd because it is. Though it also carries real utility for this specific use case. Apply the same approach to running a startup or writing a paid service from scratch and you'd get very different results.
- vidarh 8mo agoI don't know about something this complex, but right this moment I have something similar running in Claude Code in another window, and it is very helpful even with a much simpler setup: If you have these agents do everything at the "top level" they lose track. The moment you introduce sub-agents, you can have the top level run in a tight loop of "tell agent X to do the next task; tell agent Y to review the work; repeat" or similar (add as many agents as makes sense), and it will take a long time to fill up the context. The agents get fresh context, and you get to manage explicitly what information is allowed to flow between them. It also tends to mean it is a lot easier to introduce quality gates - eg. your testing agent and your code review agent etc. will not decide they can skip testing because they "know" they implemented things correctly, because there is no memory of that in their context. Sometimes too much knowledge is a bad thing.
- lukan 8mo agoHumans seem to be similar. If a real product designer would dive into all the technical details and code of a product, he would likely forget at least some of the vision behind what the product is actually supposed to be.
- mafriese 8mo agoNope it isn’t. I did it as a joke initially (I also had a version where every 2 stories there was a meeting and if a someone underperformed it would get fired). I think there are multiple reasons why it actually works so well: - I built a system where context (+ the current state + goal) is properly structured and coding agents only get the information they actually need and nothing more. You wouldn’t let your product manager develop your backend and I gave the backend dev only do the things it is supposed to and nothing more. If an agent crashes (or quota limits are reached), the agents can continue exactly where the other agents left off. - Agents are ”fighting against” each other to some extend? The Architect tries to design while the CAB tries to reject. - Granular control. I wouldn’t call “the manager” _a deterministic state machine that is calling probabilistic functions_ but that’s to some extent what it is? The manager has clearly defined tasks (like “if file is in 01_design —> Call Architect) Here’s one example of an agent log after a feature has been implemented from one of the older codebases: https://pastebin.com/7ySJL5Rg https://pastebin.com/7ySJL5Rg
- ggoo 8mo agoThanks for clarifying - I think some of the wording was throwing me off. What a wild time we are in!
- simultsop 8mo agoquite a storyteller
- stavros 8mo agoWhat OpenCode primitive did you use to implement this? I'd quite like a "senior" Opus agent that lays out a plan, a "junior" Sonnet that does the work, and a senior Opus reviewer to check that it agrees with the plan.
- mafriese 8mo agoYou can define the tools that agents are allowed to use in the opencode.json (also works for MCP tools I think). Here’s my config: https://pastebin.com/PkaYAfsn https://pastebin.com/PkaYAfsn The models can call each other if you reference them using @username. This is the .md file for the manager : https://pastebin.com/vcf5sVfz https://pastebin.com/vcf5sVfz I hope that helped!
- theonething 8mo agoI don't think so.
- thaynt 8mo agoI think many people really like the gamification and complex role playing. That is how GitHub got popular, that is how Rube Goldberg agent/swarm/cult setups get popular. It attracts the gamers and LARPers. Unfortunately, management is on their side until they find out after four years or so that it is all a scam.
- krackers 8mo agoI've heard some people say that "vibe coding" with chatbots is like slot machines, you just keep "propmting" until you hit the jackpot. And there was some earlier study that people _felt_ more productive even if they weren't (caveat that this was with older models), which aligns with the sort of time-dilation people feel when gambling. I guess "agentic swarms" are the next evolution of the meta-game, the perfect nerd-sniping strategy. Now you can spend all your time minmaxing your team, balancing strengths/weaknesses by tweaking subagents, adding more verifiers and project managers. Maybe there's some psychological draw, that people can feel like gods and have a taste of the power execs feel, even though that power is ultimately a simulacra as well.
- abelitoo 8mo agoExtending this -- unlike real slot machines, there is no definite state of won or not for the person prompting, only if they've been convinced they've won, and that comes down to how much you're willing to verify the code it has provided, or better, fully test it (which no one wants to do), versus the reality where they do a little light testing and say it's good enough and move on. Recently fixed a problem over a few days, and found that it was duplicated though differently enough that I asked my coworker to try fixing it with an LLM (he was the originator of the duplicated code, and I didn't want to mess up what was mostly functioning code). Using an LLM, he seemingly did in 1 hour what took me maybe a day or two of tinkering and fixing. After we hop off the call, I do a code read to make sure I understand it fully, and immediately see an issue and test it further only to find out.. it did not in fact fix it, and suffered from the same problems, but it convincingly LOOKED like it fixed it. He was ecstatic at the time-saved while presenting it, and afterwards, alone, all I could think about was how our business users were going to be really unhappy being gaslit into thinking it was fixed because literally every tester I've ever met would definitely have missed it without understanding the code. People are overjoyed with good enough, and I'm starting to think maybe I'm the problem when it comes to progress? It just gives me Big Short vibes -- why am I drawing attention to this obvious issue in quality, I'm just the guy in the casino screaming "does no one else see the obvious problem with shipping this?" And then I start to understand, yes I am the problem: people have been selling eachother dog water product for millenia because at the end of the day, Edison is the person people remember, not the guy who came after that made it near perfect or hammered out all the issues. Good enough takes its place in history, not perfection. The trick others have found out is they just need to get to the point that they've secured the money and have time to get away before the customer realizes the world of hurt they've paid for.
- SkyPuncher 8mo agoDoubt it. I use a similar setup from time to time. You need to have different skills at different times. This type of setup helps break those skills out.
- raffraffraff 8mo agoThe next stage in all of this shit is to turn what you have into a service. What's the phrase? I don't want to talk to the monkey, I want to talk to the organ grinder. So when you kick things off it should be a tough interview with the manager and program manager. Once they're on board and know what you want, they start cracking. Then they just call you in to give demos and updates. Lol
- juanre 8mo agoI have been using a simpler version of this pattern, with a coordinator and several more or less specialized agents (eg, backend, frontend, db expert). It really works, but I think that the key is the coordinator. It decreases my cognitive load, and generally manages to keep track of what everyone is doing.
- heliumtera 8mo agoCongratulations on coming up with the cringiest thing I have ever seen. Nothing will top this, ever. Corporate has to die
- kaspermarstal 8mo agoCan you share technical details please? How is this implemented? Is it pure prompt-based, plugins, or do you have like script that repeatedly calls the agents? Where does the kanban live?
- mogili1 8mo agoNot the OP, but this is how I manage my coding agent loops: I built a drag and drop UI tool that sets up a sequence of agent steps (Claude code or codex) and have created different workflows based on the task. I'll kick them off and monitor. Here's the tool I built for myself for this: https://github.com/smogili1/circuit https://github.com/smogili1/circuit
- kaspermarstal 8mo agoCool, thanks for sharing!
- justmedep 8mo agoScrum masters typically do not assign tickets.
- taspeotis 8mo agoThis sounds like BMAD? https://github.com/bmad-code-org/BMAD-METHOD https://github.com/bmad-code-org/BMAD-METHOD
- RestartKernel 8mo agoWhat are the costs looking like to run this? I wonder whether you would be able to use this approach within a mixture-of-experts model trained end-to-end in ensemble. That might take out some guesswork insofar the roles go.
- alphazard 8mo agoEvery time I read something like this, it strikes me as an attempt to convince people that various people-management memes are still going to be relevant moving forward. Or even that they currently work when used on humans today. The reality is these roles don't even work in human organizations today. Classic "job_description == bottom_of_funnel_competency" fallacy. If they make the LLMs more productive, it is probably explained by a less complicated phenomenon that has nothing to do with the names of the roles, or their descriptions. Adversarial techniques work well for ensuring quality, parallelism is obviously useful, important decisions should be made by stronger models, and using the weakest model for the job helps keep costs down.
- rlayton2 8mo agoMy understanding is that the main reason splitting up work is effective is context management. For instance, if an agent only has to be concerned with one task, its context can be massively reduced. Further, the next agent can just be told the outcome, it also has reduced context load, because it doesn't need to do the inner workings, just know what the result is. For instance, a security testing agent just needs to review code against a set of security rules, and then list the problems. The next agent then just gets a list of problems to fix, without needing a full history of working it out.
- fphhotchips 8mo agoWhich, ultimately, is not such a big difference to the reason we split up work for humans, either. Human job specialization is just context management over the course of 30 years.
- miki123211 8mo ago> Which, ultimately, is not such a big difference to the reason we split up work for humans, That's mostly for throughput, and context management. It's context management in that no human knows everything, but that's also throughput in a way because of how human learning works.
- 8mo ago
- DanOpcode 8mo agoVery cool! A couple of questions: 1. Are you using a Claude Code subscription? Or are you using the Claude API? I'm a bit scared to use the subscription in OpenCode due to Anthropic's ToS change. 2. How did you choose what models to use in the different agents? Do you believe or know they are better for certain tasks?
- porker 8mo ago> due to Anthropic's ToS change. Not a change, but enforcing terms that have been there all the time.
- ceroxylon 8mo agoWhat are you building with the code you are generating?
- AlexErrant 8mo agoFor those ignorant, CAB is Change-advisory board https://en.wikipedia.org/wiki/Change-advisory_board https://en.wikipedia.org/wiki/Change-advisory_board
- rafaelmdec 8mo agoThank you for the link and the compliment.
- _alex_ 8mo agoInteresting that your impl agents are not opus. I guess having the more rigorous spec pipeline helps scope it to something sonnet can knock out.
- tehlike 8mo agoYou probably implemented gastown.
- sathish316 8mo agoSubagent orchestration without the overhead of frameworks like Gastown is genuinely exciting to see. I’ve recorded several long-running demos of Pied-Piper, which is a Subagents orchestration system for Claude Code and ClaudeCodeRouter+OpenRouter here: https://youtube.com/playlist?list=PLKWJ03cHcPr3OWiSBDghzh62AErndC5pm&si=V6XNpoGmGyWqF1Di https://youtube.com/playlist?list=PLKWJ03cHcPr3OWiSBDghzh62A... I came across a concept called DreamTeam, where someone was manually coordinating GPT 5.2 Max for planning, Opus 4.5 for coding, and Gemini Pro 3 for security and performance reviews. Interesting approach, but clearly not scalable without orchestration. In parallel, I was trying to do repeatable workflows like API migration, Language migration, Tech stack migration using Coding agents. Pied-Piper is a subagent orchestration system built to solve these problems and enable repeatable SDLC workflows. It runs from a single Claude Code session, using an orchestrator plus multiple agents that hand off tasks to each other as part of a defined workflow called Playbooks: https://github.com/sathish316/pied-piper https://github.com/sathish316/pied-piper Playbooks allow you to model both standard SDLC pipelines (Plan → Code → Review → Security Review → Merge) and more complex flows like language migration or tech stack migration (Problem Breakdown → Plan → Migrate → Integration Test → Tech Stack Expert Review → Code Review → Merge). Ideally, it will require minimal changes once Claude Swarm and Claude Tasks become mainstream.
- vercaemert 8mo agoPersonally, I'm fascinated by the opening for protocol languages to become relevant. The previous generations of AI (AI in the academic sense) like JASON, when combined with a protocol language like BSPL, seems like the easiest way to organize agent armies in ways that "guarantee" specific outcomes. The example above is very cool, but I'm not sure how flexible it would be (and there's the obvious cost concern). But, then again, I may be going far down the overengineering route.
- potamic 8mo agoCould you share some details? How many lines of code? How much time did it take, and how much did it cost?
- karmasimida 8mo agoYou might as well just have planner and workers, or your architecture essentially echos to such structure. It is difficult to discern how semantics can drive to different behavior amongst those roles, and why planner can't create those prompts the ad-hoc way.
- tommica 8mo agoIs it just multiple opencode instances inside tmux panels or how do you run your setup?
- alexwrboulter 8mo agoThis now makes me think that the only way to get AI to work well enough to actually actually replace programmers will probably be paying so much for compute that it's less expensive to just have a junior dev instead.
- fortedoesnthack 8mo agoI was getting good results with a similar flow but was using claude max with ChatGPT. unfortunately not an option available to me anymore unless either I or my company wants to foot the bill.
- ComplexSystems 8mo agoHow much does this setup cost? I don't think a regular Claude Max subscription makes this possible.
- amelius 8mo agoCan't you just use time-sharing and let the entire task run over night?
- JasperBekkers 8mo agoThis is genuinely cool, the CAB rejecting implementations must be hilarious to watch in action. The Kanban + Git worktree isolation is smart for keeping agents from stepping on each other. I've been working on something in this space too. I built https://sonars.dev https://sonars.dev specifically for orchestrating multiple Claude Code agents working in parallel on the same codebase. Each agent gets its own workspace/worktree and there's a shared context layer so they can ask each other questions about what's happening elsewhere (kind of like your Librarian role but real-time). The "ask the architect" pattern you described is actually built into our MCP tooling: any agent can query a summary of what other agents have done/learned without needing to parse their full context.
- big-guy23 8mo agoShare your code of the “actual best quality “ or this is just another meaningless and suspicious attempt to get users to put the already expensive AI in a for-loop to make it even more expensive
- 5Qn8mNbc2FNCiVV 8mo agoDo you mind sharing the prompts? Would be greatly appreciated
- paulnovacovici 8mo agoI’ve been messing around with the BMAD process as well which seems like a simpler workflow than you described. My only concern is that it’s able to get 90% of the way there for productionized ready code, but the last 10% is starts to fail at when the tech debt gets too large. Have you been able to build anything productionizable this way, or are you just using this workflow for rapid prototyping?