{"slug": "show-hn-there-are-many-factories-but-this-one-s-yours", "title": "Show HN: There are many factories, but this one's *yours", "summary": "Mikael Weiss released Penguin, an open-source TypeScript workflow builder that lets developers define their own software factory workflows with deterministic pauses and adapters, addressing flaws in existing coding harnesses. Installable via `npm install -g @mikaelweiss/penguin`, Penguin is in early beta and available on GitHub.", "body_md": "# There are many factories, but this one's *yours*\n\nAll coding harnesses and code factories have a few major flaws: 1. You don't get to pick the workflow - someone else decides the workflow for you 2. It's often unclear when the human is needed - is the agent done, or do you need to verify? 3. You're limited to prose and all it's downsides - nested logic and complex compesition is pretty much out of the question 4. We end up relying heavily on agents calling mcp's or cli's for things that should be deterministic calls\n\n## You don't get to pick the workflow\n\nWhy should the guys at vercel, linear, factory, anthropic, or openai decide what workflow is best for you?\n\nPenguin flips that:\n\n*YOU* decide what workflow is best.\n\nThree concepts: Workflows - what's run Adapters - a way to connect to the outside world Messages - async or sync sent between workflows and adapters\n\nWith these three primitives, you can build incredibly complex workflows including, but not limited to, software factories.\n\n## It's often unclear when the human is needed\n\nWith Penguin, you can write deterministic pauses in workflow (\"New messages from slack, would you like to pause implementing or read them after?\")\n\nWhen an agent stops it's either because the agent needs human input or because it is done. When done, the workflow moves on to the next step until a human is needed. There is clear separation between an agent finishing and human input needed.\n\n## You're limited to prose and all it's downsides\n\nIf you want a workflow that runs another workflow that runs another workflow that runs several agents and it runs all those workflows in peralell, you just can't do that with prose very easily. Code is much more clear\n\nThe workflows and adapters all are written in TypeScript making it incredibly straightforward to build a new workflow or adapter.\n\n## We end up relying heavily on agents calling mcp's or cli's for things that should be deterministic calls\n\nWhen you implement a github issue, jira ticket, or review a PR, you are ALWAYS going to pull the info from those sources, and you can do this with a script. There's no need for the agent to use an MCP.\n\n## Final notes\n\nYou can build a workflow that has steps, blockers, and all, without ever even calling an agent.\n\nYou can make workflows that respond to all kinds of triggers: Slack, GitHub, Jira, User, a webhook, anything you can bulid an adapter for\n\nPenguin is the ultimately composable workflow builder\n\nInstall with: `npm install -g @mikaelweiss/penguin`\n[https://github.com/mikaelweiss/penguin](https://github.com/mikaelweiss/penguin)\n\nStill early beta, but I've already started using Penguin at work as well as to build Penquin!\n\nComments URL: [https://news.ycombinator.com/item?id=49342987](https://news.ycombinator.com/item?id=49342987)\n\nPoints: 1\n\n# Comments: 0", "url": "https://wpnews.pro/news/show-hn-there-are-many-factories-but-this-one-s-yours", "canonical_source": "https://github.com/mikaelweiss/penguin", "published_at": "2026-08-18 08:33:24+00:00", "updated_at": "2026-08-18 09:11:15.622836+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents"], "entities": ["Mikael Weiss", "Penguin", "GitHub", "npm"], "alternates": {"html": "https://wpnews.pro/news/show-hn-there-are-many-factories-but-this-one-s-yours", "markdown": "https://wpnews.pro/news/show-hn-there-are-many-factories-but-this-one-s-yours.md", "text": "https://wpnews.pro/news/show-hn-there-are-many-factories-but-this-one-s-yours.txt", "jsonld": "https://wpnews.pro/news/show-hn-there-are-many-factories-but-this-one-s-yours.jsonld"}}