Introducing GuardRails: A new Coding Agent Task Manager

I know what you're thinking, is this Jira for AI? Yes. Is this like Beads? Yes, but slight differences, and heavily inspired by Beads. If this interests you, feel free to read on, otherwise, feel free to exit. As for those wondering, no, none of this blog post is written by AI, I have a lot of words on my own, I only use AI in my writing to get feedback and self-adjust.
I've been using Claude Code for the last few months. Like everyone else who has used it, I'm hooked. I discovered Beads by Steve Yegge and I was even more hooked. I don't think I've used Claude to its full potential but using Beads alongside the .claude/instructions.md file has been the most revolutionary thing about Claude for me. It was only out of some frustrations with Beads that I decided to build Guard Rails.
I had two issues, one of them was the fact that Beads used git hooks for everything, the other was that tasks could find themselves complete / closed without any sort of validation. I wanted to solve these, but I knew it wouldn't make its way into Beads directly. I want to be clear, I love Beads, but I didn't want to interfere with its existing architecture, my safest path forward was to build my own alternative, this journey led to other features and improvements, I will miss Beads and I do hope it continues to thrive.
Originally I tested Claude by asking it to help me to build a Beads competitor in D (which I may still open up at a future date - though I will not maintain that version, it was a version 1 draft attempt, anyone can feel free to do anything with it), the main reason I chose D at the time was because I love D as a language feature wise and find it underrated, but also SQLite is baked into D's standard library, but D has terrible DMD support on Mac, and it was a nightmare to work with, I think I wound up installing LDC (llvm version of D compiler) but that left me wanting to walk away, it means friction I don't want in my tooling, Walter Bright if you read this, I love your work, I do hope DMD eventually finds its way to Apple Silicon Macs.
In the end I wanted something that everyone can compile and work with, and Go is a great fit there. I didn't want to use Rust because I wanted something simple that I can review code for without my head exploding.
So I started with Go. My requirements were very simple: use SQLite for everything unlike how Beads works, ensure that it can work concurrently, and eventually whilst working on it, it reminded me of one of my biggest frustrations: Tasks / beads would be closed without me validating changes. This was where I came up with the concept of Gates (which Claude pitched to me after I described it) so that I can force validation from either: the user, unit testing or the agent running some manual tests via CLI utilities. These gates can be re-used and should be per task.
Oh, and one big feature I'm proud of, because I had to keep doing this by hand: I've added synching to / from between GitHub and GuardRails. I wanted this because I have side projects I work on that I need to track work in some meaningful way, but also, I figured it would be really neat to be able to import GitHub issues locally. If you import issues, it will leave a comment on the Issue to note that it is in fact adding the issue locally, as a sort of signal that someone intends to work on the issue locally (whether they chose to vibe code it, or use an AI to assist them coding it is kind of irrelevant to me).
I know Anthropic is working on a feature to allow you to use multiple Claude instances, but with GuardRails you can have a team that uses whatever coding agent they prefer and work in concert on tasks (though I think I can refine this more than its current state), you can use something that isn't Claude as well, and take advantage of multiple people taking tasks and letting other agents know.
All that said, feel free to fork, test, report bugs, fix bugs, suggest features, and critique the tool. I'm not considering this a 1.0 stable release, let's call this a "0.1" release and go from there. If you're a security researcher or much more seasoned Go developer please feel free to review the codebase for code smells, and red flags, and let me know. I focused on being an architect primarily and let Claude write all code. Yes, I used dangerous mode.
Forgive if my blog post feels scattered, I wrote it by hand. I do intend on writing more blog posts now that I remembered where I had a copy of my website files for Publii. Expect a write up of how I use Claude Code locally, my personal experience and tooling I've used prior.
GitHub Repository:
https://github.com/Giancarlos/GuardRails