Episode 31: Checking for AI guard rails
Published: Wednesday, May 6, 2026 • Duration: 50 minutes • Season 1
Download MP3 | Watch on YouTube
https://link.excalidraw.com/l/cQESkNUilU/9R9YETcpHcG
summarize "https://youtu.be/7lHwUBKV9tI" --timestamps --slides
This is a recorded conversation about rebuilding Spec Ledger and how teams should integrate AI agents safely into developer workflows: architecture choices (Golang CLI, Vercel/NextJS frontend → monorepo + open backend), skills registries, agent-triggered commits that capture session transcripts, CI/CD and linting guard rails, sandboxes/routers, testing trade-offs, and a proposal for an “AI show guard rails” scoring tool.
aborted mapping project and spec-driven attempts
The speaker tried to use spec-driven development for a mapping project but hit Docker and native map dependency issues, so progress stalled; multiple abortive attempts left them wanting to re-run the spec-driven workflow with a simpler project, and the conversation opens by comparing these practical blockers to the intended planning/value of spec-driven development.
Spec Ledger rewrite and skills registry
They’re rewriting Spec Ledger to make the backend open-source inside a Golang CLI (currently the public repo is a Golang CLI with a Vercel NextJS web app), moving toward a monorepo and first-class organization/multi-tenant support so teams can share workflows, choose or customize templates, and pull workflows per org; the NPX/skills registry from Vercel was ported into the Golang CLI so agents can discover and install skills (skills are referenced by Git repos and the registry ranks skills by install metadata), and private/team skills plus usage metadata and GitHub API quirks were discussed as implementation details.
agent-driven installs and session capture pipeline
Agents in plan mode can detect tech stacks, search the CLI skills registry, propose matches and trigger installs; the system hooks Git commits so the CLI captures session context (it uses regex to tag which spec/branch a commit belongs to and captures conversation since last capture), stores that session data in Supabase and JSONL webhooks, and the web backend visualizes results (Kanban and tree views) while search across repos and executable-spec validation remain important missing pieces; Spec ledger visualizes that process.
integration paths, Backstage plugin debate, and config controls
They debated making Spec Ledger a set of Backstage plugins versus a standalone “virtual Backstage” to avoid requiring Backstage for adopters, noted the value of a remote MCP/central registry to keep skills and agents aligned across teams, and described agent config options: settings.json with secrets vs commit-able settings, agent profiles to choose endpoints, and the ability to disable AI attribution on commits/PRs; guard rails discussed include routers that mediate all AI requests, sandboxes for agents, and Claude-like features (auto-eval for dangerous actions, hooks and allowlists).
reviews, tests, deterministic checks and CI trust
They argued that large AI-generated PRs make manual review impractical so organizations must rely on CI, linters and deterministic tools (go vet/gofmt/golint, gosec, complexity checks) and adversarial agent reviewers for security checks; they debated test coverage (100% coverage can bloat code and encourage testing implementation details), recommended executable specs and end-to-end validation gates, and warned that brittle commit hooks (if they exit nonzero) can break agent shells and flood failures.
proposed “AI show guard rails” and infra bootstrapping notes
A proposed project would score a session’s safety by inspecting settings, pre-commit rules, router/sandbox presence, token usage and model endpoints (a gamified audit to highlight risky setups), and they agreed this could be built with a spec-driven development spike; operational notes: use CloudFormation StackSets to bootstrap accounts and trust roles for Terraform automation, Atlantis is used but has limitations, and they plan to prototype the guard-rail linter as a Spec Ledger spec-driven task while recording the process for follow-up; The human’s involvement is the review of the user stories and the validation that the end-to-end thing work.
Model: openai/gpt-5-mini
Transcript (auto-generated from YouTube captions)
How does it go? How did it go? Did you have a play? Did you do what you said you would? >> To be honest, I I wanted to I did, but I kept on running into issues because the project that I had the std spec driven development in mind was a mapping project which has a ton of dependencies in order for it to work with the open street map. And I kept on having problems with Docker and >> yeah because I needed Docker to build the sort of dev container with all the with all the open street map. C++ boost balls. But let's not let's not talk about that because >> but I think it highlights a very important thing, right? Um you you speced it out. You had the user stories but you got stuck on technical problems like the >> No, I didn't even I to be honest I didn't even get that far. >> Okay, I need to revisit that. >> But today I was going to conveniently go around that way. I hear this echo. >> Let's Hold on. Let me just see if I can >> probably my my head too loud or something. >> Oh, echo cancellation. >> You mean you hear yourself? Maybe from my can back into the mic. >> Maybe it's me. >> Yeah, the I mean changing the topic cuz the spectrum I mean need to I I just I've had a few just abortive attempts to spectrum development. I just need to give it another try. So have you been doing it? What what is your status with spectriven development before we move on? So I've been working on a rewrite an open source version of the back end of Spec Ledger. So currently Spec Ledger public repo is a Golang CLI and the actual web app is a Versel hosted Nex.js app with serverside rendering and I am not a fan of that. Um I also prefer monor repos and I don't mind. I think it will be more interesting if the back end is open source directly within the CLI repository. So, I've been specking out a new version of of the spec ledger with organization support like multi-tenant from the get- go. So, you can organize projects per organization and then you have your private workflows of if you want to do openspec or if you want to do specit or if you want to do Google conductor >> then you would should be able to choose internally with like or you can build your own version of your of your templates. Basically what I want is I don't want the prompts the um the workflow to be embedded within the Golang CLI. I want the Golang CLI to like you know you authenticate and you pull it from your organization or maybe maybe there is the first version is is is is available so when you >> organization organization why do you say organization is that just to set set the context or something? Yeah, because I believe the main purpose of or the main problems that I'm trying to solve is stakeholder buyin and sharing access to the artifacts that need to be reviewed and a review environment. And then the second thing I want to solve is keeping your specdriven development projects aligned in terms of workflows so that you can version and pull the workflows. And then because specdriven development workflows are heavy-handed, you should be able to customize your workflows to have maybe less steps for your for maybe the data team doesn't want to do certain steps of it. So you could customize basically right now on Reddit I see quite a lot of posts about we had the problem of distributing skills within our organization so we build an internal skills registry which I think is already hold on >> does mpx skills.sh SH support private ones I wonder cuz that's the way I I use to distribute my own skills. >> Yeah, so Versel is very simple the NPX skills from Versel. I actually ported that TypeScript source code because it's open source into Golang specure CLI. So um so basically because I I don't want you to have to run multiple right beats is inside the Golang CLI. the skills is inside the Golang CLIs manage. So you just download >> building your own bundle package of AI tooling or something. >> Yeah, I mean you could argue that you take the best tool for the job. But I I think all of this is related like by adding the skill search and skill install capabilities directly to the Golang CLI of the spec ledger. You can also trigger it by the agent. So when the agent goes down to the plan phase and identifies a certain text tech like hey you're building a react it then actually goes and searches using the SL skills any react skills that we can use and then it proposes like I found these skills and the versel uh registry has metadata from snik about vulnerability. So the agent does that >> so it sounds like every organ organization needs to heavily customize this spec ledger workflow or how do you describe it? Yeah. >> Yeah. Because I think skills are like I don't know my experience with skills is that they have some skills I cannot share because they have some hard like some information that is private. So yes you can use the versel skills dot you know skills registry which is actually it's interesting because after porting it from Typescript over in Golang cloud told me a couple of interesting things. Apparently the way that skills are indexed by that tool is if you use it to install a skill. >> Yeah. Then it comes up on the leaderboard. >> And then it comes up on the leaderboard. It's through metadata to usage metadata. So, so my Golang CLI is also sending usage like every time you run the specs ledger CLI to install a skill, it's sending the same metadata like this skill was installed. Yeah. And then the second part is the skills live inside GitHub, right? There nothing else. There's no there's no no other registry. It's just simple. A skill is referenced by uh a git repository. There's a shortcut for the Versel skills which are served directly from the registry endpoint. So for every or pretty much every other skill, the npx skills CLI actually does a get clone of the repo and and then my Golang CLI is like trying to use GitHub API, but then there was a bug because it wasn't like getting all of the references like we get get the main >> API is a nice way to get some private stuff. >> Yeah. And it would be that's my goal ultimately. My goal is SL CLI, you know, and as part of an organization, you have your own skills that you can't make public and that you don't want the users data to be registered. So, so then you you should be able within teams to run the SL binary and then uh hide or or just have private skills as well on top of the Versel registry hosted skills. >> Let me just >> But the same with agents. >> I'm trying to find um how to share something. Where's the chat? There's chat here somewhere. Oh, yeah, it's on the right on the side. So this this this rewrite of spec ledger is really a big like a thing that I wanted because the way I envisioned it, it always had like the ability to create your own workflow within your organization and share those across repositories and that was never possible because of the way it was implemented. So I'm really excited about this rewrite but um I haven't been able to actually you know complete it. >> You can see what I'm writing here. >> Yeah, it's a big box with spec ledger. Maybe you want to zoom in because when I watch these um recordings on YouTube the it's always super small. I usually watch from mobile. >> Okay. So, um I I love how like in the last one I'm we we called this this whole thing um you know this whole STD thing a planning tool uh you know driving alignment and now this thing like you're doing a package a bundle of of necessary AI tooling or something is the way thinking I'm processing what you just said to me. Uh yeah it's more like um boilerplate management. So if you want to bootstrap a repository for a certain type of development it will you know with SL init you will get the full spec like spec kit workflow which is the same spec ledger workflow >> and then every prompt is telling the agent to hey if you run the SL binary you can find open comments that people has left on on these documents. you can find um issues that have been created and and task dependency graph and what is open what is available what's the definition of done has this been completed >> oh so do what are you using for like a beads visualizer >> no visual I yes sorry so when you push git there's a web hook that parses the JSNL >> uh and then visualizes into a conbon view and um a tree view in in the web app so >> Oh so so that's part of your your web app >> yeah that's the back end so the back can is the web app is is really so I I did um a little like brain storm with um I think it was with CHPT to identify if um Spec Ledger should really be a plug-in for backstage or a collection of plugins for backstage because I felt like backstage has is an internal developer platform that gives you a single pane to discover you know. >> Yeah, I'm not I'm not fan. Yes, I know a lot of people hate backstage because of past experience because it was hard to customize because it required you to write TypeScript plugins. I think a lot of those arguments and I'm very excited to challenge that opinion of me are gone with AI because now asking and also backstage has repositioned itself more as like a context delivery or like AI native tool and like remote MCP. So a friend told me like I think we discussed this last time. He said that having a remote MCP server unlike having all these skills inside repositories and distributed across machines is much harder to keep aligned than having a remote MCP. And a remote MCP is always up to date to the version that's deployed for everyone. So that made me think like actually um having this like this IDP as a context provider. Therefore specledger should really just be like a small AI workflow plugin to it. But at the same time, I don't want Spec Ledger to pre-require um uh backstage obviously because a lot of people don't want to run it. So that's why I was like, is there a way for me to build specger as a bunch of plugins and then mock the whole of backstage as just um you know, if you don't want backstage, you can just have like um a virtual one that just runs spec ledger only. Um but it looked like it's really not a good idea to do that. But it also surfaced very interesting stuff. So, backstage does have some document plug-in that basically uses MK docs to visualize the um the data and and I I was basically telling TGPD I feel like specledger is just um a like markdown render like a web app that renders markdown out of a git repository, right? But it's not really um because Specled Ledger gives you metadata about the ability to to leave comments. It also visualizes specifically the workflow because that's a common problem with specd driven development is like I've done this what's the next step I remember our early discussions every single time was like what's the next step so so spec ledger visualizes that process so it's it's a very customized um for the spec spec development >> and then how does GitHub fit in with this >> GitHub right >> is git is the source of truth right but you're assuming GitHub is there and going to be running like your CI/CD and the rest of it, right? I mean, just to build a complete picture here, >> um, I mean, Git is a source of truth. Specled Ledger just generates documents that are version controlled in git and the spec spec web app is currently only built for GitHub web hooks, but it could support any git version control system. Uh, and just visualizes the contents of your git repository also across repositories, right? um as an organization then you should be able to like one one other feature that specled ledger I feel must have is the ability to search like is there any like have we if this uses story somewhere is there like like you know to index and find and source like what what you get cuz basically it's kind of like a knowledge base like what do you need if you if you've replaced confluence with kit you need still the ability to see the documents in a nice uh printable view mobile so it's possible to you know have a mobile version to to easily review and look at documents. Um that's really bad on the GitHub interface because that's not what it it's written for, right? And uh the search functionality, right, with Confluence, you can very easily go and find related documents and things like that as a KB. I mean, in the end, it's a bit like Obsidian then, right? Creating my gosh, I'm really messing this up. Okay, so I think I I I understand where you're going here. I I think all this tooling um has its place and I think it's kind of interesting. But I just I wanted to just contrast this with with my reality. And my reality is like um I'm usually like in a in a in a team. Oh my god, what happened to my you know I'm usually in a team. I mean this is great for for alignment, right? But I'm I'm in a team with like a couple of other people. We're all generally using um but that's you know something like claw code or codeex or whatever >> or open code >> or even open code. Yeah. Well, we all Okay, let's let's see if I can draw a picture that's a bit more representative. >> There's a massive CDK terrain release coming by the way. Lots of fixes. >> Nice. like we we all have like a our individual uh uh sessions whatever and um and we all I don't know working on different sort of things I I guess I guess in reality this in a proper software project this turns out to be uh PRs I suppose >> yeah which is also I mean I mean as you're drawing arrows which is also a feature that specledger built which is a a session like um indexing engine, right? Every every time you do a commit spec ledger CLI is um triggered as a hook. And to be honest, right now that's not very configurable. It's a bit like beats. It's it's like a virus and it stalls themselves. But basically, when it detects a get commit, it will capture the human um conversation of what led to that commit inside. Yeah, it does. >> Okay, this is what I was looking for. A a get commit. >> That's how it has been implemented. I don't know like I let somebody else decide what's the best integration pattern. >> So it grabs the the transcript or >> it grabs the delta. So every like every time um it does it uses like a sophisticated regular expression uh and it it identifies um which context that you're on like for example are we working on this spec or that spec which branch is he on um and so on. And then it will capture all of the conversation since the last capture point uh and then put it inside superbase. And then the idea is then to surface it, right? To be able to see this comet was really good or this like this whole feature went wrong. So every single like ultimately all of the messages that led for one feature spec are all tagged by the feature spec and we can break it down by commit to see how did the user come up to that commit. Um but that part of actually mining the data displaying the data is not implemented. >> So we do have like data being in in superbase. I have never looked at the table. Somebody else implemented it. I'm not sure if this is the best way like one of the approaches we thought was like why don't we just you know just drop the whole session in inside S3 or something like that like obviously with the consent. Um yeah, but um yeah, that's not really there, but that's definitely one of the things that we want >> that we want to expand on. >> All right, cool. Cool. Cuz like I there's a few things that that that come to mind. >> I keep saying the same thing because I mean I also keep saying the same thing, but you shared Simon Willis like visualization of how you capture your sessions and put them into an HTML format. >> Yeah. I'm just revisiting it. I'm just revisiting it because there's still some questions in my mind like um like the PRs like like like guard rails here like like like things I think are quite sensible to do like like how how would you like limit the size of the PR because I mean I I mean I'm guilty of doing this myself when I'm I'm and I'm in a bit of a session with Claude or Codeex and my PR that I just created is huge like wouldn't it make sense? >> I mean this is a common problem with AI development, right? That that it's very hard for humans to review. I I honestly think with that we have to trust our CI/CD and our tests more that we cannot review the code. Um but I also I have two ways of working with with uh with the code, right? Um I have smaller PRs when I tend to use um cloud plan mode and I do that when I and so no spec driven development when I'm working on like an issue that was created. So I have two ways two work um streams. One is specd driven development creates the issue list next issue ready you know based on the spec and the user stories and everything that we agree the humans involvement is the review of the user stories and the validation that the end to end thing work and the user story is is implemented as is exe executable specs should be the ideal proof that it works we don't care about the code >> okay I don't think I've this before but that makes a lot of sense the human okay let me just let me just pen that before I lose it the human does the um I'm I send you the link in the chat by the way. Um a story review. So that comes I I'm not too sure what the the whole cycle looks like. And then I'm looking for a I don't know an AI. The AI does does the um or the agent does the the the code review is what you're saying, right? >> Uh code review. I mean awesome. I think right now people are going back and forth this a lot between because some people like I mean back in January a lot of people step up and says I'm an engineer that have like senior engineer lots of experience I don't look at my code anymore right lots of people said that back in January I think people now in May are coming back from that a little bit and saying yeah you know we did that we we didn't look at our code it wasn't really good we found like so much duplicated functions so much uh >> I don't know like running situations >> so you were just telling me I mean sorry I was maybe half listening because I was trying to >> cuz I was telling you that the human's involvement is purely and I don't user stories yeah on the user stories and then validating that like I mean you have you should have automated validation like we talked and endlessly about that um how do you really have fully automated tests and the ability to bootstrap a full ephemeral environment and validate everything works exactly the way you expect or how you have executable specs uh and then on the other ite you have the the code. Um, right now people are going crazy, right? You have agents reviewing agents. My friend was like that's that will never work. Agents will always say that they are doing the right job. But to be honest, you can do adversarial reviews and agents can be very critical. You can create dedicated skills that focus on identifying security issues and so on. There's a lot of startups right now with huge amount of investment um for for um you know for AI review systems, right? >> Yeah. Yep. So I mean I mean that's the next thing I wanted to get on to with Okay. So so I'm just I'm still trying to imagine this PR. So So you still have a huge PR and you just basically rely on your your CICD and your your a your adversarial agents to review it. But like and and then as you said like for security you also have a particular agent to to >> it doesn't all have to be agents right I mean right now you have very decent like Golang evaluators that say complexity of function is too is is too >> yeah like go sec and go um go lint something whatever >> yeah it will say you have three layer like you you this is there's a nested if branches um this is too complex uh fall is not clear. >> So there's some deterministic uh things you can run over it. >> Also test coverage even if you want to consider it as a valid metric. Um that will say like I don't know I really don't like test coverage after you know the problems I had with with AI because of the amount of refactoring you have to do and how I feel tests fail when you have to do massive refactoring. But maybe it's a it's a skill issue of initial planning. I I I I I'm I'm I'm not a fan of test coverage. I feel like almost ripping that out just because I don't want to encourage it because like sometimes I think the the Go core team they basically uh they have very light uh testing in a way. Their coverage is not for the full Golang source code. They they they test where they think it's meaningful to test. And I noticed that in my personally in my own projects when I get AI to do um you know try to get 100% coverage like it like completely re-engineers my my source code and completely uh you know creates these interfaces just so that they can properly be tested and it m it just balloons the source code in my it makes the source even simple projects kind of difficult in my opinion but I know it's probably better engineered but I just for a hobby project I just hate it. I had an interesting experience very early on when I started learning Golang. Um I was writing small little projects back like 10 years ago and I was trying to write go tests and it wasn't going very well and I ended up rewriting a lot of my like I implemented all the stuff and then I was like okay now let me write some tests like I haven't done that before. Uh I start writing tests and I can't test this thing. I can't test that thing because you you can't like execute it individually. you can't you you need to like the function needs to uh you know maybe the interface must be what you call it inversion of control must be injectable must be this type of patterns and I I was like wow after I finished writing the test I feel my code is so much nicer I've like and I go to my colleague and I say like well I just learned how to write go test it was pretty cool I rewrote all of my original code and he was like if you have to rewrite your original code to write go test that's probably not a good thing and I was like to be honest I believe the original code was really bad and I believe rewriting your code to implement the tests made it a lot better like you're just saying oh it creates I I I think the fact that you had trouble adding the tests or the AI ask you to you know to re interfaces because it was all tightly coupled and and not possible to test again where do you want to do the tests do you want to do unit test >> I think on on a on a client project I would have done the proper thing it's just it's just I find I find it's uh I was just trying to make a facicious I was trying to make an argument that when you go to 100% uh when when you want to achieve 100% coverage, weird things start to happen in my opinion. >> Yeah. No, like every metric once it starts to get gamed, you're not getting what you want. And I also had a colleague like who said my my coverage is super high, but that's usually that's like you have some organizations where you can't have more than X percentage of coverage. Can't be more than 70%. If if it's more than 70%, you're you're you're you're writing your test to technical implementation details. So I think there's there's some assumptions that I think that we need to capture here because I I heard a story where there's an organization that's using Claude everywhere and and in some of some of the you know the different teams the different skill levels and some people are basically producing like uh artifacts using claude or codecs which maybe don't go through a CI/CD you know like like like how do you prevent claude from like publishing to a public site or something like this these sort of things. Um like I feel I feel like we this is quite a rosy situation where everyone's like >> I disagree. I mean if you're telling me that the organization doesn't have proper uh you know development practices and people are like I think the biggest issue that people have with AI messing up things is that they are not engineers and they have never worked in in an organization that actually follows proper sane engineering practices. >> But this this is the >> having separate environments not getting giving access to production going and promoting artifacts and as you increase the trust. I mean a lot of these stories that I hear about AI is because you're not following the most basic DevOps or security practices that even the smallest startup has. >> Well, I mean I could come up I can come up with some scenarios like for example like for like you you in a in a even in a a small or larger organization you might have people who are like um you know working in finance and things like this and then they want to come up with some sales report. I mean to them this this whole engineering stuff is completely foreign to them and then they end up >> but but it is a problem where where you're not like an AI engineer or an AI um what what would you say an AI agent is basically need to be on boarded onto the systems right and the boarding practice must um must be solid if you do the same with a human you could argue that like you tell a human it's going to do it's going to make a mistake but you tell it not to do it again it's going to do it again and AI agent doesn't really learn unless you have like this like memory system or or so on, but like it's still going to keep making the same mistakes. I I would accept that as an argument, but still it's a problem with access. If you're saying like, oh, there's a finance guy now gets wants to get cloud access because um it's all the rage and he believes himself um an excellent engineer because AI tells you this is so easy and let's do it and then it just goes and publishes um a financial report which would be private. Uh I can agree with you that that that happens. Um and and we actually have a DevOps day talk about that last year in Singapore where if your organization doesn't have a proper policy on AI adoption already a year ago they were saying like well how are you going to govern um AI like if if you don't have a policy people are going to use their own subscription and their own tool. >> So for example the finance or the nontechnical people in an organization let me get this straight. So you're saying that you wouldn't give them access to to claude on AI tools? >> No, no. Like the talk that I refer of uh DevOps day Singapore last year explicitly said that as an organization you have to have an AI policy. You have to put in place um the contracts and also you have to give them access you have to give them a proper way to access it. That includes through a company subscription um with limitations that like will um you know first of like guarantee that there will be no training on this internal data. No internal data will be used by the inference provider. So that's a proper contract between the company and the um and the inference provider. and and then other suggestions that was in that talk which I'm off the top of my head was like to actually have a router that looks at the AI usage. Um basically everyone is using AI through this router and then that gives you a a layer of accountability and also ability to block things. >> So on on that topic how do you how do you route all the the AI network requests through a router? This is something I I I I was meaning to look at today. I I >> so I can I I could find you that talk because he he gives an example. It's a year old so obviously a lot have changed. Um and also funny I think we mentioned this in the previous call as well that a lot of these routers are actually like stealing um your your credentials and like trying like crypto wallet stealers and so on. So you have to be careful which one you use. But but I think another important part of that aspect is or another important aspect of that is something that's really happening a lot right now with agents messing up is like agent like you just mentioned guard rails right I talk frequently with George who works at stackpack and they kind of pivoted towards more of aentic uh because they are focused on devops tasks so they're focused specifically on how do we put like a harness that catches damaging actions and then uh stops them, right? I think there was recently an announcement from AWS or uh they said like hey here we give you a sandbox was it I think Verscell announced agent sandbox where they say now you give we give you a full sandbox and um we guarantee that the agent cannot do anything anything silly. I'm not sure if it was Versel or AWS. There's been a whole there has been a few announcements like I I thought I was of the opinion that AWS Bedrock had had a lot of stuff in this regard, but I'm I'm just talking up my ass really. >> I remember seeing an announcement somewhere on on on on um LinkedIn being like we we guarantee you that the agent cannot do something damaging. Like in my previous client, I was I think I was whining and bitching about it with you, but like it was heavily uh limited in the sense that we could only use it in co-pilot and I guess it was a bit for for fortuitous, but we were using uh dev containers. So when we were using dev containers, we were using co-pilot and we're using AI and dev containers and everything was very was sandboxed by default like without us even thinking about it. Um so of course of course most people who who using AI are not really using it in a sandbox right at this point in time. I I know maybe clawed code work tried to get there uh but like most people who who who just run clawed code are don't have a proper sandbox really especially when they when they go you know dangerously skip permissions or something. >> Yeah I think but so Claude Code added a new interesting thing which is auto mode. Um, so originally when you did a plan, you had the option to go auto accept edits and then it would still constantly ex ask you for permission because I I don't use I don't run dangerally skip permissions. I am the bottleneck. When it asks me a comment, I haven't whitelisted. I have to approve it or allow listed. Then now it has this allow mode which I've been trying to use a couple of times and successfully sometimes but lately I actually kind of avoid it. So auto mode is a separate eval agent that like a small little model that does a quick eval like is this a dangerous activity or not and it rejects things because it says things yeah but that's kind of like affecting a third party system and we should not be affecting third party system like it's very uh generic type of evaluator. It doesn't take into account the context of what we're trying to do. It just looks at the command and says could this potentially have a negative impact? If it does it just rejects it interesting and then it gives the reason. I thought we're going to maybe talk about hooks and things like that. Have you have you played with clawed hooks? >> Yeah. So the the spec ledger CLI is a hook that um that that acts whenever a command get executed. >> Yeah. But like are you talking about like a cloud hook or github? >> Yeah. >> Cloud. So it happens whenever the agent triggers a git commit because a lot of the prompts and a lot of the work I do um now is I I have no problem with the agent. Actually, before I never allow the agent to commit, but now I always ask the agent to commit because it writes a really good it stages the file correctly. It writes a really good commit message that I like to see. So, um, so that's why the agent it requires you to trust the agent to do the commit. So, when that happens, um, it's a bash call that that doesn't >> your claw hook uh sort of make sure that there's a good uh get. >> No, no, no. the only thing it does because it has to do something real fast uh and get out of the way because if the hook fails it it really breaks your agent's shell. We have experience where if CLI breaks for whatever reason and then everything the agent tries to do because it was a a bash tool hook. So every time the bash tool was called to do a git command or whatever to identify if it was a big git command. It was a nightmare. No. suddenly like I would download the new spec ledger CLI uh release and then I would try to use cloud and it would just break like the model would just constantly every command and it wouldn't tell you why it would just be failed failed failed and after investigation we figure I figured out like oh it's because of the SL binary hook is is exiting exit one and the hooks are failing and there was no information why >> that's the one thing I always get frustrated with uh all the tooling really is that like sometimes something hit something went into my global thing and then and then and then there's something in my project thing and I don't know what the precedence is like or what what's being used >> but that what I really like about that is that whenever something like that is failing I always ask cloud okay go and look what is going on and it goes through its local settings it goes through the global settings it goes here and there and says like these are all the things that are currently connected that could be impacting this and and here it is this is the fix >> so the next thing I want to talk about is things.json like um do you ever touch this file like I I know it's probably more of a Claude thing but like do you ever because in the settings.json you can like uh I think Claude also does it in skills in other places. Hold on I'll get to skills in a bit but like in in the settings.json you have your like permission sets you can say that like >> and also arguments for the model and like API endpoints for the model. Yeah, there's a bunch of stuff that goes in there. Like everything goes in there basically. Like would you say it's um it makes sense to ship a settings.json in a project as to you know maybe disallow users from I don't know RM or something like that RM minus RF. You know what I mean? So, so what what specledger uh the Golang CLI does is it does have the concept of agent config because one of the people that was working on the project was either using open code or Claude Code with quen local or a separate uh endpoint. So when he I built a feature that launch launches Claude Code and with a prepared prompt and then goes straight into some activity. So you would run SL and then it would bootstrap the repo and then would immediately launch Claude Code and says um we're bootstrapping the repo and it has the prompts and the skills and it would just go off and he'd be like that really breaks for me because I have to set a custom endpoint. I have to do all of these additional settings configuration when I launch Claude Code there's all this like arguments that I pass in and so he built a feature on the on the CLI that that gives you the ability to configure different agents uh profiles um like and and so your settings.json JSON but but with two sections like secrets versus non-secs overridable what is collected what you would commit into the repo because maybe you want some of those settings be get included and some of this like local that you don't want to include so so there is quite a extensive feature spec on on how to set up the Claude Code settings and so on but to be honest I don't use it because I I'm using cloud code as is I don't have any like custom flags or something so there was only one other person using completeness. Yeah, I wanted to mention like get um what is it called? Git hooks >> attribut hooks. >> What is have you heard of this new project called PR? Hold on. What is pre? Oh, pre-commit. Sorry. >> Yeah, of course. What do you mean new? >> Okay, whatever. >> Um >> I I've been using Precomit since 2019, I think seven years for all of my Terraform. >> Autofixers are like >> Yeah. Yeah. Yeah. But PRE is the new Rust one. Whatever. uh >> new wish. Okay, >> you just given me an idea uh Vincent like how about the vibe coding a tool like this a tool where you can go like um you know uh AI show guard rails or something like this and it would basically look through your your uh your settings your pre-commits um your your your I don't know your switches your flags and basically basically you know you know, give a score about about your your your session, how safe it is, you know what I mean? Cuz cuz a lot of people, including myself, to be honest, in a personal context, I go yolo in my little sandbox. But like from an org point of view, you you want people um well to to set up to to use AI safely. But in the in the case that they haven't for one reason or another, maybe it would be good to sort of gify it to say like, hey, you okay, you had a great session with AI, but you know what? um you know this could have gone wrong that could have gone wrong and you know your score is 58% you know next time um AI could have done this you could have improved and become you know 88% uh if you um had this guard rail in place or something like that you know what I mean >> yeah I would definitely ask clout or chat to do a explore if anything like that exists um it Sounds interesting, but it also sounds it also sounds like something that I would go like that's wrong. You don't trust me. I don't care cuz yes. I mean I mean these tools are popular and people use them and I think they're good for um non-technical user but like for me I find them offensive. >> I guess for us we would find it frustrating and dumb or something like that. But I do >> Yeah. It would it would say like you only have a 50% secure setup and I would be like f you. I know what I'm doing. Uh but but but um while we were on the topic actually earlier about settings.json and when I was talking about doing I mean I think the AI show guard wheels is cool but what I wanted to to highlight is something that I I learned and I saw a funny meme. So I think it was on Reddit and people and people are like when you work with AI and um you say like commit this then cloud goes like here's the commit and then it like writes the whole commit message and then at the bottom it says co-authored by um cloud opus 1M or whatever like the model and the context and so on. a lot of times because maybe it's something that you don't want people to see that it was generated with AI. you may you know either I I I usually I don't give it a permission to do the git commit sometimes and I just in those projects I don't give it the permission and I would go like no I would copy the command remove the attribution and then run the command myself and I would be like I already committed it uh I had to fix the pre-commit um go continue I would I would usually because actually it's in projects usually >> get commit gas amend right >> but the very funny thing is and it was a funny meme of a picture of of a of a guy uh I I forgot the picture. Okay, you got to find my picture for for >> I got to find it. I might I'm not sure if I saved the comment because there was a very interesting comment. Apparently, you can in the settings of cloud disable attribution. So, by default, yeah, by default, cloud will add its like co-authored by cloud in the commit message and also if you create a pull request, it will also say generated with cloud in the in the pull request. Uh you can disable both or one or the other. So, so you have all of that uh capability. So you can actually and then right after I read read that comment on on Reddit I went to cloud and I said can you disable attribution and it was like both PR or commit and I was like both and it was like okay done. I was like, "Holy shit." You know, so many times I've just like told it not to do that and then went in and and and and did it myself. And the funny thing is when I did that and it then shows the whole pre-commit like pass pass and then or maybe with an autofixer and then I go on stage and then do the commit again and then I have a reason, right? And I say, "Hey, I had to do it myself." And then cloud next time it's like here's the git command for you to run and I was like, "Okay, thank you." So it kind of remembers like this guy doesn't want me to commit. >> But but that's that's kind of a bad practice though. I mean we you want to show that you used AI, right? >> We depend on the project. >> For this for this AI show guardrails that >> I'm going to give you an example that somebody told me. Okay. Not me. >> It's a friend of a friend. Absolutely not me. >> Totally not you. >> Remember the whole thing I said about like AI routers, API uh AI router governance contracts in place. You cannot use like you even said it. You cannot use certain models. If I do a commit with Opus 4.71M, but it's not available on whatever the the plan that that that I'm supposed to use, that's a problem, right? I cannot have a commit that says Opus 4.71 did this commit. >> Yeah. >> I mean, not me, right? Somebody told me that. >> Yeah. >> Yeah. I mean, this I'm actually >> using the right. >> I want I want to write this program because I >> I know it's going to catch people like me. >> Catch people like me. catch people like you Vincent for example but this this is the problem I'm seeing all every day at work people are basically um maybe maybe token usage there's a lot of things that could go in here do you think this okay now do you think this makes sense to be a spec driven develop spec driven develop project yeah I mean I think this type of project is something I mean you could probably okay you could probably vibe code this with the going into plan mode and it will make a lot of assumptions Um, but if you want to have the real control of exactly what are the metrics that you want to capture, then doing it with spec driven development, it might actually help you more like spike on the different type of guard rails that you want to build. >> Okay, I'm I I just realized the time I need to take my kids to school in 10 minutes, but okay, I I'm I'm going to record myself. I'm I'm gonna mark this the the places where I might be a bit confused. I'm going to record myself developing this in spec with spec uh the spectrum development on the specket and then and then maybe we can use that as a topic for the next pod, right? >> Yeah. Um it might be like if you're used to plan mode, it will be frustrating but it might also be rewarding because you might see all the assumptions that the AI gives you uh and then decide that yes this is a great assumption and actually no I want to go more in this direction. Um but you will it will definitely be frustrating in the token usage. Um you will definitely be like I have used 80 like 30% of my session budget and I have not even written a line of code yet and I've only got these stupid spec documents. That will definitely be the first impression. >> Yeah, I I I like this. I mean this this seems like a I can't remember the name. Can can you can you dig up that talk from from Singapore Dev Days or whatever? >> Yeah, DevOps Day Singapore. um which I think this year is going to be by the end of the year. Um last year it was around May. So pretty much >> yeah the whole networking uh log VPC oh whatever capturing the the the the networking of um cuz what the lethal trifecta for for AI agents is private data access to the internet and untrusted content uh untrusted content if I remember correctly which is and untrusted content and internet access is almost the same thing. So I'm I'm thinking the network angle is something I want to investigate further. But in the meantime, I will specdriven development some sort of AI show guard rails. This is going to be my my my next vibe project. How do I I don't know how to use a cruel code anymore. What are you what are you doing? Thanks. Was there some other basic DevOps practices to add here that come to mind? I'm I'm drawing blanks here. or have having a a pipeline test gates can't hear you. You you muted yourself, Vincent. >> Ah, so earlier with my amazing jokes, you didn't hear any of them. >> Yeah, they were that good. Okay, thanks. I think that was a I think that was a productive session. I'm I'm I'm going to do some Spectre and development on a on a guardrails uh linting tool. Okay, >> I want to ramble off one more fun fact. Okay, >> there's a branch on the bun repository of a rewrite into Rust. Reddit and had like five or six threats going crazy about, oh my god, Antropic, they have so much money to have AI rewrite bun from Zigg into Rust. Haven't they ever heard of Dino? What's wrong with them? Um, and X I guess the same type of backlash. And the author of the branch came uh in one of those threads and said, "You guys are blowing this way out of proportion. I just want to know what a rust version of bun looks like. What's the memory profile? How does it act and so on. Uh but it's kind of interesting to that we are at a day and age that you can just go and let me rewrite this massive framework from zig into rust just to see what's the you know. >> Yeah. >> Yeah. But that those sort of experiments should be private. Why the hell is he publishing it for Christ >> sake? because um bun is an open source project and it's a branch on the opensource uh repository rewriting and he's doing and and I don't know I think I shared with you because he has this context document in the branch that says like this is how you rewrite um from zing >> super interesting because um that's one of my original AI that was my DevOps day talk last year by the way uh using AI to rewrite uh something from AWS CDK cloud form into CDK for Terraform. So to see that how the rules that he he defines are very very very cool. Um >> Right. Right. Right. Oh on the topic to have you just to rattle off a couple of things the for setting up um like a like a fresh AWS um landing zone like a whole organization, right? Would you say the Terraform tooling or the CDK uh tooling is about the same? It makes no difference like using AWS control tower, setting up your logging account and your cloud trail blah blah blah. Does like which IA solution would you go for? I think e either or would you say Terraform's better? Like especially if you had to like you know do do general things like uh you know link up with uh with octa and things like that. Does it make >> I think my my experience is dated when I use AWS control tower um I think four years ago it missed a lot of the features that I wanted. I have a mixed where I do like AWS cloud AWS organization and cloud formation stack set which allow you to target a child or member account based on the uh unit like organization unit ou. So you can apply a stack set basically you can define the cloud for stack at the organization level and then on these organization units automatically deploy them. >> Sure you're using cloud for I guess >> no bootstrapping. So I said I have a mix setup like I use AWS or I don't use control tower um because of the landing zone uh product was pretty bad >> as another project I can't remember. Sorry. >> What is AWS or? >> So AWS or is where you are able to manage multiple AWS account >> under Yeah. Yeah. Yeah. Sorry. I thought you were referring to some sort of framework or something. Sorry. >> No, no, no. But but that all of those services have evolved so much um that I think >> it's the kind of thing you don't do very often. um usually and also that's another very like an argument that that is very hard for me to argue against which is like yeah but we only have five accounts and we only on boarding them one one every year or one every quarter so why do we need to have this all automated so my my personal preference right now that I have that I use is I use stack set to bootstrap the terraform because I I don't use tacos uh hosted service I use Atlantis and Terraform with with my own setup you're using when you say stack set you're using like the AWS provided stuff I guess right >> so stack sets are an AWS orc cloud for feature you have to give the I think you have to give a service linked account uh linked role permission uh you have to enable cloud for service to run AC across your AWS org so that it can go in into different accounts and do things so I use that to bootstrap my accounts automatically they get bootstrapped with uh an IM role that has a trust relationship with the AWS account where my my Terraform automation lives. So I have one which usually is called like managed services or shared services account or they call it in in AWS CDK you have this as well. AWS CDK pipelines uses the DevOps account as as a as an idea. That's where your pipeline is defined and it runs across all of your other accounts. So I have the same setup. I have one account where where the um the pipeline lives and all of the other accounts when they're on boarded they trust they create a trust relationship with that account. Have you had any things that like like easily bootstrap Atlantis and things like that or is that just >> Yeah, I do. And I I so part of my terra constructs uh project was to basically come to the point that I publish a a terraform mod terf or a CDK terrain construct that just you just run it and it just bootstraps your whole um account and terraform automation. >> That would be cool. I mean like people ask me about this and I'm like yeah use control tower. How do you do Atlantis? Uh do it manually? >> I feel Atlantis is lagging behind in a lot of features and it's designed in a very rigid way. Like it's very hard to to make changes like even just making a drift detection with the API endpoint is kind of really is broken. So I use Atlantis but I don't think it's a very good solution. I think there might be other like I don't know maybe state graph if there but there should be more like a better automation solution for that. But >> yeah, agreed. But as you said, like you you generally only do this like once. How often do you need to do it? Okay, cool. Um, I thought that was a productive session. I will I will pledge to do some some sedd for you to review in a bit. Have a great day. See you. >> You would have a lot better experience if you use spec ledger, but maybe you should use specket first to know. >> Yeah, I'll use packet first and then then we can exchange notes. Okay. See?





