Snowstorms, Side Projects, and AI Workflows
Chris Gmyr (00:00)
Hey, welcome back to a slightly caffeinated podcast. I'm Chris Gmyr Hey, TJ. So what's new in your world this week?
TJ Miller (00:03)
And I'm TJ Miller.
man, this week's been...
week's been really heads down. Like, it's just been like a good heads down. Deep, deep in Iris, the ⁓ couple days ago, I realized I had some like, flawed logic in some just the way I was like thinking about memories. And then I introduced a new concept and then like,
I don't know, this morning I was like looking at the new concept and realized that there were some flaws there too. So I'm just in like, I'm in heads down mode. I'm trying to release Iris like Tuesday or Wednesday next week. So I'm just in a full court press of like getting everything ready. And that's how I discovered everything was like, not everything, but I was like wrong about how I was thinking about memory was I was doing a like.
final doc review and then realized like as I'm like reading through the docs I'm like wait a second this doesn't make any sense so yeah that and then things Geocodeo too have been like super heads down we're we're shipping like crazy like earlier this week I like launched a
whole new like little applet for us that like a little new little website is like engineering this marketing which was pretty cool like powered through that with AI that was that was crazy experience seeing it like go from nothing to building a whole app in like a day and like doing it pretty pretty much the way I would have done it
Chris Gmyr (01:23)
Yeah, that's awesome.
TJ Miller (01:30)
and then ⁓ gave it free reign of the UI and literally just said, make this better. Like it made the UI, was solid UI. was just as described. It looked like a developer designed it. And so I literally just went back to Claude and like loaded up Anthropics front end design skill and just said, give it some personality. This looks like a developer made it. And...
Chris Gmyr (01:43)
Yeah.
TJ Miller (01:54)
it made a very cool UI. Yeah, it was like a little app monitoring the US government's like census API stats. So it's like a little uptime monitor.
Chris Gmyr (01:57)
Yeah, did you?
Did you end up having to use Playwright MCP to have it check its own front end and all that, or the skill took care of that?
TJ Miller (02:13)
I did have it do that and it used Playwright and like took a screenshot of the app and like, I mean, I could have taken the screenshot and sent it to you, but like it opened up Playwright, pulled up the app, like the local instance of the app and like took a screenshot and crunched through it. And then just came up with this like wild design. We'll stick it in the show notes. It's, I'm actually super fond of it. It's really cool.
Chris Gmyr (02:35)
That's
awesome. Yeah, I forgot they put out that skill. I'm going to have to tinker around with that. Because the landing page for like fine print hound that I mentioned last week, it's fine. But I need some like tweaks and changes to that. Like I also have like now it's been so easy to do some of this stuff. It's like, ⁓ maybe I should update like my website and these other side projects and now might have time to tinker with them.
and redesign some of them. Some of them are pretty old. So it'd be nice to get in there and give them a fresh coat of paint and some functionality.
TJ Miller (03:07)
I have been very good about my focus this week. Like, I've been really focused on Iris. I've been really focused on getting caught up with Prism. Like, I've... I think I released like four times this past weekend of just like bangers too. So just very, very heads down with all this stuff. Yeah. Lots of, lots of code, lots of talking with Claude on coding and actually like...
have been hitting my limits for once. Like, yeah, I haven't hit my limits in a long time, but like the last couple days I've been hitting limits left and right, which has been cool because it's been very productive. But dude, I feel you. I almost unleashed Claude to redesign my blog. Like, now that I've been starting to post again.
Chris Gmyr (03:35)
And.
you
TJ Miller (03:53)
Yeah, almost was just like, yeah, let's redesign the site while we're at it. No, no, I have other things to do.
Chris Gmyr (03:59)
Yep, yep, yeah.
I have too many focuses. So I guess you can say I'm a little bit more unfocused. I know we talked about the NAS and Plex and still working on that. lots of back and forth and tinkering with different systems and with Claude on that, helping debug a few things. Making it simpler, a little bit more automated. So that's been a huge kind time suck in my personal time of like, ⁓ well, I want to do this now and do that now.
TJ Miller (04:27)
Yeah.
Chris Gmyr (04:27)
All
this other stuff. So it's been fun, but it'll be nice when it actually settles down a little bit and then can just let the system run and then just sit back and enjoy it.
TJ Miller (04:40)
Yeah, I'm very anxious to get to that point where I can like sit back and enjoy this a little bit now that I've torn things up. Like it's very much like, I just took this and like made a mess. So now I got to like clean some things up, especially getting ready, like Iris getting that ready to go. So yeah, man, what's been, what's been new in your world?
Chris Gmyr (05:00)
Ah, snow and ice, mostly. We like we didn't get a ton last week, but it just stuck around and we had like ice and my son already had like a kind of teacher work day on Monday. And then with all the snow and ice, like they canceled like the rest of the county on Monday. He was off on Tuesday. It was off on a Wednesday. He had a two hour delay.
TJ Miller (05:02)
Same, yeah.
Chris Gmyr (05:26)
on Thursday, two hour delay today on Friday. it's just like, like, even bother going to school? But so it's been a long week for everyone, including my wife, for sure, handling the two of them during the day and trying to keep them occupied when it's not even that fun to like go outside and play because it's just ice and crunchy and you can't even really do anything. And then we're supposed to have like another storm front coming in this weekend. So it might be actually a couple inches of snow.
and then also cold next week. So who knows how it'll work out. But we'll see how goes with that. then, yeah, busy at work crunching through a bunch of different projects and doing some planning. We opened up the floodgates for AWS Bedrock for the whole engineering team. So been getting a bunch of questions and how-tos and tweaks and changes to some of the information that we put out. Also started planning a tech talk to do.
TJ Miller (06:10)
nice.
Chris Gmyr (06:21)
because we usually do Tuesday afternoon tech talks for various subjects. So I'll be doing that in two weeks. So yeah, going pretty well. And then, like I said, outside of work, just spending way too much time tinkering with the NAS and Plex. Haven't done too much with fine print hound this week, but hoping to get back to that once the NAS stuff settles down. We can talk about that a little bit more.
TJ Miller (06:25)
Cool.
Yeah.
Chris Gmyr (06:49)
Alll bunch of stuff. All the way around.
TJ Miller (06:51)
Yeah, that's cool, man. Yeah, we've had like, it's really cold here and we've got probably six inches of snow on the ground. And it's like, it currently is, let's see, it's 15 outside, but I'm pretty sure the wind chill is below zero. So it's, it's one of those like, it's nasty to be outside too. But kiddos head school like all week, luckily, cause that would have been really hard to deal with.
Chris Gmyr (07:15)
Yeah, yeah. Nice.
TJ Miller (07:17)
Especially
with littles,
Chris Gmyr (07:19)
Yeah, it's tough. anytime the schedule gets turned upside down, just sometimes makes it even worse. And they get even more squirrely because it's not the usual schedule and tasks and activities and all that.
TJ Miller (07:34)
Yeah,
you catch them out of their routine and, oof, brutal.
Chris Gmyr (07:36)
Yep. Downhill.
Yep. So this weekend should be interesting, but hopefully they'll at least get some like outside time and play in the snow and hopefully it won't be too like bitter cold and icy. So hopefully it'll be fun.
TJ Miller (07:46)
Yeah.
Luckily it hasn't been super icy so I took all the sledding over the weekend which was a blast. Good times!
Chris Gmyr (07:56)
Cool. So yeah, I don't have anything new like coffee wise. I feel like I've been pretty bland recently, just kind of doing the same rotation of things. I did pick up a little bit of like mocha cold brew the other day just because we were going to be iced in and, you know, little snow day treat or something. But that's about it for me.
TJ Miller (08:16)
Yeah, for sure.
Yeah, same. It's been still still over here coffee wise. Like I've just been. Same same old counterculture, still just French pressing like still haven't gotten my Turkish coffee. Maybe maybe I'll go out and celebrate after after launching Iris and finally go and do that. Yeah, there we go. Finally do. I've been talking about it for like three weeks now, so I gotta get out and do it at some point.
Chris Gmyr (08:28)
you
There you go. Celebratory Turkish coffee for Iris.
Yeah.
Yeah, totally.
TJ Miller (08:46)
cool man, so I would love to hear how things are going with Fine Print Hound.
Chris Gmyr (08:50)
Yeah, thanks. Like I said, the last week I haven't been too busy, but I've gotten to the point where I'm kind letting the site and the system run to see kind of what happens. So I was able to import, let see how many sites that I have in here now. Got like over 1,000 sites in here, which a site is not just like Amazon, it's like all of their,
⁓ policies. like one site would be like a terms of service, one would be like a privacy policy, one would be like a data retention policy. So like a site like or a service or an org like Amazon could have, you know, 10 or 20 different sites or policies that we're monitoring. So when I add an org like Amazon or like Walmart or, you Anthropic, usually it has anywhere between like two and 10 plus different
policies that we're monitoring. So I got a bunch of that stuff set up. And yeah, I guess I'd just be interested in talking about just what the system does, the tech stack, some of the issues that I ran into, and go from there, if that sounds cool to you. So yeah, it's been a while. So day job is not.
TJ Miller (09:44)
Yeah.
Yeah, let's do it.
Chris Gmyr (10:08)
Laravel or PHP, it's TypeScript and Node and a bunch of ⁓ things in that ecosystem. So it's been a little while since I was able to truly tinker with Laravel and PHP and some of the new fun things like cloud and all that. So I'm like, I stick within the same ecosystem at work and do some double dipping?
learning-wise, like, I just kind of want to go back and just enjoy myself and have a little bit of fun too and check out all the new AI stuff as well. yeah, brand new, Laravel new application, Laravel 12, Tailwind, installed Laravel Boost, and just the feeling of the AI ecosystem in Laravel.
TJ Miller (10:32)
Yeah
Chris Gmyr (10:54)
Now compared to what I'm used to day to day for TypeScript and Node, feels completely different. Because of Boost and the optimizations that they have in there, it just seems so fluid. And being able to catch things from the docs or what's happening in the application, so much easier with all the MCP connections and search tools and all that. So it's just been a blast and a joy to be able to manage Claude within that project.
because it seems like that much harder at work to do similar things, which is weird, but it's like, ⁓ this is just so much more productive over here.
TJ Miller (11:33)
And you know, Taylor talked about this extensively on Twitter too, and like I'm very much a firm believer in this. And this is why I was like, I've been just so AI-pilled with Laravel. was like, look, Laravel has been around for a long time. It's in the training data for these AI, like these AIs. And...
Laravel has also been so idiomatic about how it approaches things and that it it can do everything from like cues to like front end stuff to all this that like It's it's Between being batteries included and being so idiomatic about how it approaches things There's places for controllers to go there's places for like jobs to be like it's very standardized and I think that plays so well with AI that like
Chris Gmyr (12:02)
Batteries included.
TJ Miller (12:19)
you can get into this stack so fast and build so quickly compared to your ad hoc assembled JavaScript and however you decided to assemble all the components to make your framework or whatever. Even if you're buying into a framework, it's not the same as something that's been in the training data for so long that it's just crystallized in it.
Chris Gmyr (12:45)
Yeah, yeah, it's been really solid. And it's just so nice to be fully encompassed, batteries included of like, you need a queue? Here you go. Like, you don't need to install anything. You don't need to configure anything. You don't need to make a choice of which package to use or architecture to go with. Like, it's just there. And there's a few built-in options, like we know. But yeah, it's been so much nicer to get this thing off the ground. So it's been a lot of fun, for sure.
But yeah, to dive into a little bit more of the technical aspects of it. So like I said, there's a top level org in the data model. And then each org can have multiple sites or policies that we handle and try to scrape. And then for each site or policy, every time that we scrape it, if there is a change, we grab the raw HTML of the entire page or body segment of
the content, we try to pick that out and then see if there's any sort of diff from there. And then if there is a diff, then we save that as a snapshot. And then each snapshot and each individual diff and change of that snapshot gets individually ranked. So it could be like a high, medium, low kind of severity of change. if maybe like a URL changed or
there was a misspelling or something like that. It typically catches those as low. If there's a new section that got added, but it doesn't really equal that much, it'll get tagged as a medium. But if there's any high-level keywords as far as privacy or retention or big chunks of a diff, that'll get ranked as high. So you can then go through all of these
different policy changes and see like a little description of like what the change was and then you can see the full diff just as you would look at a code diff on github and be able to like read through it yourself and see what actually changed so there's a whole like ranking algorithm and pipeline that we go through which had some interesting challenges within there and coming up with like a brief description
TJ Miller (14:43)
Yeah.
Chris Gmyr (15:00)
just via code. The future is going to be actually plugging this into some sort of AI API, so probably Claude, for that and ⁓ load the diff, additional contexts around the diff and say like, okay, actually, like do a better job like ranking this and having a better like explanation of the changes. Because you could read something or like a whole paragraph could have changed, but like they just moved around like a couple of
sentences or change the wording. So even though it's like a big diff, like nothing really important changed. So it'd be nice to have some more intelligence around those changes. And it would probably simplify the ranking process as well. But it just adds more complexity right now and obviously cost and trying to do this.
TJ Miller (15:32)
Yeah.
Chris Gmyr (15:47)
as a side project and on the Jeep. And there's a lot of activity in the system right now. Yeah, it's been really cool to watch and just have the system run, see what it comes up with, trying to conditionally bypass some scraping issues with either Cloudflare or rate limiting and
We have a bunch of retries built in, and we try different user agents. And then if it totally fails out after the scraping pipeline that we have, then it'll get bounced to a manual review. So that's something that I'd have to go into, go to an actual website, copy and paste from the inspection console, or grab the full raw content. And I'm able to put my own.
snapshots in the website in the admin and it'll process that as it would if it got it itself. So for the admin, ended up using filament, which has been awesome. Again, it's in Laravel Boost. So I was able to just like spin up something as like here's the data models, like build this out. And it got like all the crud stuff, like obviously like pretty quickly.
TJ Miller (16:54)
That's so sick.
Chris Gmyr (16:57)
And then it's like, well, I need a custom page or a custom action for this. And here's what I want to see on this page. And just kind of iterated for a couple of days on what I wanted in the admin to build all these tools to make the refinement and all the manual processes that I have to go through a little bit easier. And even having the ability to click into a diff and be like, well, this one got flagged as a high.
I'm gonna change this to a low and then I can add like a quick description of like the override and just like built in all these like little options that I could go in and manually like adjust the data until we do get the AI like plugged in to do that. But yeah, it's been pretty sweet. And then now it's just been running for a couple of weeks and I just go in and see what it came up with and reviewed a little bit of it. And then I'm gonna try and do probably like
weekly or every couple of weeks, like manual pulls from the websites that need that or completely blocked, like the scraper. Because typically, like lot of this stuff doesn't get changed all that often. And when they do, they usually don't do multiple changes in a few days or a few hours. So figure once a week, a couple of times a month or something like that would be sufficient for most places. But yeah, and there some options.
that we can look into with that. But right now, just trying to do bare bones as much as possible, even though it's been pretty fleshed out for a whole bunch of feature set. And yeah, it's been just a pretty interesting journey and been pretty cool what it's been pulling up so far.
TJ Miller (18:19)
Yeah.
Yeah, man, I think it's so fun. It's just so fun. Like I was talking about this with somebody earlier. Like, I'm having so much fun building with AI. Like, it's just a riot. Like, I'm having...
the time of my life doing this because like, especially right now, and I think the same is probably true for you, but like for me and Iris, there's no way this would be impossible for me to build without AI. It's like not that I don't have the expertise to build it, but like, I don't have the time. I don't have the bandwidth to like sit down and build this thing, you know? And so...
like, and I just love creating, I love building, I like, I love, I love the process of going from nothing to something and like refining it, you know, so it's just been so much fun and I love, I love seeing what other people are building with it too and like, I think this is just like a really cool project.
Chris Gmyr (19:21)
Yeah, thanks. and filling is the same like time and effort. It's like, yeah, when I was planning this out initially, it's like, I should even like do this because it's going to take like a whole bunch of like time. It's like, well, you know, cloud code can do a bunch of it. And I basically tried to decide right out of the gate of like, no, I'm just going to be like a project manager and like architect of it. So.
I don't even think I've touched any code in there. Like I've reviewed a bunch, like I've asked for a bunch of changes, but I haven't actually gone in and I don't think I changed anything except for some like environment variables of like setting up these different services. And I think environment variables is like where I've stopped for code, which is crazy because like any other project before it's like, I'm constantly in the code and same thing as you, it's like building it from scratch by hand. So it's been a totally different experience, but
It's also just a different type of fun. Before it's like, ⁓ the fun comes from making the code and making it look nice or maybe a little bit more performant or whatever using a new pattern. But now it's like the fun is finishing the feature, launching the feature, seeing how it works and iterating on it. And it's just so much different paradigm with interacting with this compared to like
old side projects that I've had where it's just almost like a slog. It's like you're excited about it. Initially, you have that like initial like fresh energy. And then the last 50%, 80 % is just like, ⁓ like, can we just be done with this? Like, I don't want to do it anymore. Or you just like stop and then the project doesn't go anywhere. But it's like now you can actually finish and you can finish pretty quickly depending on the project or at least get that.
kind of dopamine boost from launching so much. We're moving in that direction. So I think that's been the biggest change ever is I'm not losing energy at the end of the project. I just can either put it off to the side for a little bit and come in with the same energy once I'm ready with Claude or just keep on iterating and keep on pushing it forward.
TJ Miller (21:13)
Yeah.
Yeah, I think the same is still true that like nine, like the first 90 % still goes by like super fast and like the last 10 % is still just a drag, but like, it feels like less of a drag when I'm having somebody else do it, you know? Like.
Chris Gmyr (21:44)
Yeah, yeah.
Yeah, if I want something different, like it's a drag on the AI to do it, like it's no really, you know, sweat for me.
TJ Miller (21:55)
I'm wondering if you're experiencing this too, because I experienced this a lot with I'm so much less emotionally attached to the code. I feel like I used to be very emotionally attached to the code, and I would fall victim to sunk cost fallacy all the time. I'd spend two, three days in a feature, then realize that a fundamental
concept I had was wrong and now I gotta like debate like do I just like hot fix it or do I go back and like rework the implementation and now it's like yeah just nuke this rework it like we'll start from scratch and like I can something that would have taken me like three days to build and then realize I was wrong like
I could build it four or five times from scratch with AI, right? Like, and we can take a different approach every single time. And so I'm so much more willing to just like throw away time, effort, code, and just say like, nope, where does this start from scratch? And like approach it again, like whatever, we're just gonna do it. You know?
Chris Gmyr (22:49)
Yep, totally. Yeah,
there's like definitely the sunk cost fallacy and feeling like you need to force this path through because you put so much energy into it or you know, just wanting to push it through just because like you've gone so far. So being able to just blow it up or even spinning up, you know, different branches to try things out or anything like that to just
go against to performance on branch one versus performance on branch two. See which one is better and then merge that in. It's no issue to ⁓ do that. just, I don't know, it's so much easier now where it's kind of defeating the old way of doing it when you're so connected to the code and the ways of doing things and just so invested in it. So yeah, totally feel you there.
TJ Miller (23:28)
Yeah.
Yeah.
Yeah, no, I found that to be like really interesting. And like, also, now that you've been like building more to, I wonder if you've hit this point, because I've definitely been there where like, I actually have some low level anxiety when I don't have Claude working on something for me. Like, I'm getting like, I'm starting to get a little anxious when I don't have an agent working on my behalf right now. Like, this could be doing something like it could be working for me while I'm doing other things. Instead of just doing other things, like I need to get it going on something.
Chris Gmyr (23:59)
Mm-hmm.
Yeah,
yeah, I've definitely felt that, especially with the side projects. Because usually my computer is up in the office and especially on the weekend, I make a plan in the morning and just be like, kind of execute this. I feel like having to check it because it's like, if you're done, you can work on the next thing. But I got to check to see if you did the thing. And so yeah, it's just a little bit of that. But also it's like, it's a side project. It's like, it's.
can wait a couple hours to do something. ⁓ But yeah.
TJ Miller (24:29)
Yeah.
Have
you been tempted by the Ralph loop yet?
Chris Gmyr (24:36)
I looked into it a little bit and like the Cloudbot or whatever the new name of it is now, like, ⁓ yeah, I looked into it like a little bit, haven't ⁓ done.
TJ Miller (24:42)
Open Claude, yeah. Open Claude.
No, I mean, and for me, still am I'm still pretty hands on. I think if I was launching Iris as a sass, I would probably like Ralph Loop some more. But since I'm selling the code base itself, like I really care about the code quality, at least to like acceptable levels. So there's that too, like.
I'm not Ralph looping, but if I was doing a SAS, I'd probably just set it up with a bunch of tests, let it churn forever until the final product's done. But I'm definitely hand holding it quite a bit with Iris.
Chris Gmyr (25:20)
Yeah, yeah. And I guess I still prefer that, too, being the human in the loop, because I'm still learning a whole bunch with it. I still like directing it. And there's been a handful of times, even with the fine print hound project, it's like, ⁓ you're going a little sideways on this. Reel it back in this way. And if it just ran for eight hours during the day on a weekend, that would be a lot more probably painful.
TJ Miller (25:36)
Yeah.
Chris Gmyr (25:46)
to revert it and try again, even though the effort is on cloud. But it's like, we're still paying for the tokens and the service and all that. And depending on what other applications you're plugged into, it could be a cost associated with that. So I know. I still want to be a little bit more connected to it and have that human in the loop feeling and kind of adjust that. Because I've always made adjustments or prompted for adjustments.
I've never really kind of blindly accepted anything. So until the tools get more dialed in, or maybe just more dialed in for the application, I don't know. I still feel very much wanting to be in the loop of that.
TJ Miller (26:26)
Yeah,
well, I feel that. I feel that for sure.
Chris Gmyr (26:30)
Yeah, but it'll get there, I'm sure. And yeah, it's just crazy, like what it can do now, especially again, coming back to like Laravel and Boost and all the options, you know, for that. Just like this is this is slick. It makes it so much so much easier. And yeah, I don't know. It always makes me. A little mad when people, you know, just kind of dunk on PHP or don't even know about Laravel, it's like.
That's fine. You don't even know. I'll keep this to myself. You know, you're missing out, you know.
TJ Miller (26:58)
Yeah. Yeah. I think it's, I think Laravel is just so primed for AI development that it's, it's crazy. And I don't, I don't know if anyone saw it coming really, you know, but it's just, it's, it's wild watching it work inside of Laravel. Like I haven't attempted like too many other things, but like I've built a few things with Go using it and it definitely like struggles a little bit more there compared to, yeah, having like a whole framework where it's very idiomatic of like what's
what you do, where it goes. Yeah.
Chris Gmyr (27:27)
So yeah, it's been a blast and can't wait to get into some more redoing of old side projects that have just been on the list for years and years. ⁓ So yeah, probably tinkering with that a little bit more over the next coming weeks and months. But trying to at least get to a somewhat finish point for some of these other projects first and not spread my free time too thin, at least for the moment. So it's always the issue, right?
TJ Miller (27:35)
Yeah. Yep.
Yeah, right
What do you want to talk about next? We touched a little bit on AI with Laravel versus TypeScript. Do you want to dive into that a little bit further? Or do you think we kind of covered that?
Chris Gmyr (28:06)
Yeah, I think we kind of covered that. I'd love to, now that I've had like a little bit more experience with Aeroval Boost and some of the tools back over here, I'd like to see what I can do in the TypeScript node and just kind of general work ecosystem. Because typically we have standardized ⁓ tools and packages that we reach for. We have like a template repo set up for new services.
So I think that's a little bit more ripe to toolify something around there. And I want to see what Boost is doing behind the scenes and building that into our ecosystem to do something, hopefully similar and maybe close to as good as Boost does for our ecosystem. So I think that could be a pretty cool initiative, especially when I have a bunch of time to work on AI stuff at work as well.
TJ Miller (28:37)
sure.
Mm-hmm. Yeah, think having, and it sounds like from earlier conversations we had, some of the tooling you were building up is kind of like boost for like your custom setup at work. Like it seems like that's kind of the direction you were heading with it being able to like search and load different docs and like just know different things about your specific stack. And I think that's cool.
Chris Gmyr (29:24)
Yeah, yeah, definitely a lot of things that I can expand on with the docs, but also just patterns, best practices, standards, ways that we want to do things, I think, can all be built into whatever the tool is, the plugin or the MCP or whatnot. So yeah, lots of exploring there to do. So definitely got my work cut out for me over there.
TJ Miller (29:44)
Yeah.
No, that's cool, man. I think you got it.
Chris Gmyr (29:48)
Yeah, so keep everyone posted and up to date with new progress. And it'll be exciting now that everyone has access to it at work. So I'm sure there's going to be a lot more call-outs for help or people just with new ideas instead of like me and only a couple people tinkering with it on the side. So I'm excited to see what happens over the next couple months with everyone using it more.
TJ Miller (30:10)
Yeah, that's where I think you'll really start seeing accelerated improvements. I had my Claude strapping all my stuff for my Claude development process. And once I exposed all that to the Geocodeo team, that really accelerated a lot of improvements really quick once more people were using it. So I think you'll probably see that too.
Chris Gmyr (30:30)
Yeah, yeah,
for sure. Sweet. Well, I know you were talking about a little bit of ⁓ Iris earlier in your intro. Anything more to share on that? And Prism, which I know you've been pushing a bunch of releases recently. So anything big to share over there?
TJ Miller (30:43)
Yeah, yeah, let's
Let's talk about Prism. And then we can talk about Iris. So like Prism's been, I feel like for quite a while now, especially since Thanksgiving, like I just haven't been on the ball with Prism open source maintenance. So I've been really falling behind on issues, really falling behind on pull requests, like, but either between like focusing on Iris or like other stuff going on in my life. I just like, I feel like I've really been neglecting the repo. So I lit a fire under my ass and just like started going ham.
you know, especially picking off like quick wins, like quick PRs, I can get merged or quick issues I can knock out. And then I started tackling bigger stuff. And now what I've got left, I think are like, bigger ones for sure. Some like new providers, which are like big PRs to review, because I got to go like, I don't have to, but I feel the need to like, go sign up for those providers, get an actual API key, run the test, like make sure like the fixtures are correct.
especially if the PR was AI done, AI really likes to just invent their own fixtures instead of using the tools we have in Prism to generate fixtures from real request responses. So those are a lot, new providers are a lot for me to review. So I've got a couple of those to do.
And then I've got a really cool contribution from somebody for client-side tools and we're gonna build on top of that for Approvable tools so like we're gonna have like two pretty cool new features like within the next couple days for prism Probably tomorrow, honestly So I'm I'm super stoked about those Yeah, just so I've just been like
locked in, getting PRs in, getting issues taken care of, working a lot with Claude on that kind of stuff just to stay accelerated. it's got access to the GitHub CLI, so I'll throw it an issue number and it'll crunch on it for a second and give me a hand with.
figuring out what we need to do for it. So that's been pretty great. Just like, yeah, here, you go read the issue, help me work through it, ask me questions. We'll figure out what we need to do and just get it squashed.
and having to help with PR review and stuff. I'll still hand review the PR, but I'll also have Claude take a first pass at it and just bubble anything up. Because it's before asking me questions about the PR, and then I go hand review it, and I'm like, yeah, that was a totally valid question. We got to figure that out anyways. So having Claude take a first pass at it, and then I'll go do it too.
So just moving along, nothing like super, super new and cool outside of the client side tools that is an open PR that will merge. And then we're going to build tool approvals on top of that, which I'm super stoked for. And I got a couple other people asking about. Iris, man, Iris has been a trip. So earlier this week, I was doing proofreading of the docs and I was reading about like the two tier memory system.
And I realized like tier one memories are, there are two problems with them. One, it was always gonna return the same memories every time. Even if you have like two dozen thousands of memories, it's only gonna return the same like five memories every time. Like I kind of screwed that up.
But then secondly, the whole concept of Tier 1 memories was based on a heuristic that was recorded at the time the memory was created, called importance. No.
Yes, importance. I realized that importance was just this arbitrary heuristic that the AI created when the memory was created. So when the memory is created, it would say, yeah, this is super important. Let me give it a score like 0.9. Or, this isn't that important. The user's name as a memory isn't that important. Let me give it a low score.
and or like he's having an emotional crisis big big huge like super important score but that's not relevant to the current conversation at all it's just this like vibed heuristic that the AI came up with so
I realized that like tier one memories fundamentally flawed. However, we did need something to stand in as a tier one memory because tier one memories were supposed to be like the most important memories, like key facts and like things go in that spot. So I'm like, well, we still need like, there's still conceptually a need for.
semantically relevant memories, but also this like, there was this like concept that I was trying to tease out, but never really got to with tier one memories. So I introduced a new concept called truths. And truths can be created several ways. They can be created by Iris as an agent tool. There's a background command line and queue job process that creates, distills
truths from existing memories and that background process happens like every night so it takes like the top 10 % of your memories and like the top top
10 % most accessed memories and then distills truths from them. So like a good truth is, yeah, my name is TJ. My GitHub username is SixLive. You know, like these are truths. Like I have a son, I'm married. Like there's just cold hard facts that like really don't change all that much. And then users can also create their own...
⁓ truths as well. But a cool piece is we're always going to return five semantically similar truths every time you send a message. So like we're going to look them up by similarity and then include those truths. However, users can pin truths and these pin truths are always included no matter what. So if you pin like a dozen truths, you're always going to have those dozen plus five semantically similar truths added.
So like you have a lot of control over this like truth system and what's being injected into the context. So yeah, a whole, whole new concept came out of realizing that importance was just this like vibe score.
which is like, I don't know, I just had this realization that it didn't make like any sense anymore. And so I introduced truths and then like last night realized, well, is there any reason for an importance score at all anymore? There was, but that was also fundamentally flawed. So like for the same reasons. So I ended up just getting rid of importance entirely. And so,
Chris Gmyr (37:01)
Mm-hmm.
TJ Miller (37:12)
Yeah, new system called truths, and it's all crudded out the same way as like memories. And so now you get truths and memories added to your context. So what I discovered this morning, now that I've had it like distilled truths from memories twice, it's like I'm reading through the memories. And these memories are like whack. Like, not memories, these truths are like.
super whack. Like, they're definitely truths, but they, like, don't make any sense as a truth in this system. So, user has a son named Ellis, perfect truth, but then it goes on to say, had a snow day on December 10th. Like, okay, while this is true, this is a truth, like, it's not... it's a truth, but it's problematic because it's temporal.
Chris Gmyr (37:51)
Ha ha.
TJ Miller (38:00)
December 10th, they had a snow day. But also just the quality of that truth is really low. Like, it's just, it's a low quality truth. Now, user has a son named Ellis, totally valid truth. That's perfectly fine to be there. So I'm now like,
We have truths working. Conceptually, they make sense. But now I'm realizing the quality is really low. So that's the next step that I'm working on probably tonight is teasing that out and trying to figure out how we can make truth extraction better, higher quality, deal with things like truth conflicts.
⁓ And things like temporal stuff like saying yes user has a son named Alice. He's 12. All right. Well in September when his birthday happens that changes like ⁓ There's already a process in place called truth crystallization which is very much like memory consolidation where it will like When it distills a truth that'll look for similar truths and then decide whether to enhance that truth or not with like the new truth information
Chris Gmyr (38:50)
Mm-hmm.
TJ Miller (39:09)
So there's already some processes in place for this, like definitely, definitely needs some refinement there. So quickly trying to get that, that squared away because like I said earlier, like I definitely want to go live Tuesday or Wednesday next week. So yeah, got to get this like truth system hammered in, but really happy with.
Chris Gmyr (39:27)
Nice.
TJ Miller (39:32)
really happy with the decision of like getting rid of the importance score, figuring that out, figuring out that there's like actually a new concept in there, which was truths. And like, I wrote a blog post about it too. yeah, super stoked that it like, came out, but now, now I've got to like get into the weeds and like really figure out how we can make these truths like just better.
Chris Gmyr (39:57)
Yeah.
TJ Miller (39:57)
And like this is, think, a big piece of why I don't think us as engineers are going away anytime soon because like that's that that is not something that AI would have figured out. That was totally just my experience going, hey, I think we're teasing at a new concept here. Like.
this isn't a memory, this is something else. And we teased out this new concept of what it was and still had to go to the board and envision what a truth is, how are we gonna come up with these truths? And there was a ton of different decisions that needed to be made. Then I had Claude implement it, for sure, but there was so much in this that I was like...
If I was feeling a little shaky on job security as an engineer with AI, like totally dispelled that because I'm like, no, this was 100%, 20 years of programming experience that like, you know, resulted in me coming up with the concept of truths, right?
Chris Gmyr (40:56)
Yeah, 100%.
TJ Miller (40:58)
So that was an interesting aside with all of it. But yeah, super nervous and stoked to get it out there. I think there were some interesting questions from some people I've got now is like, how is it compared to like Claude bot, OpenClaw, and Moltbot?
Chris Gmyr (41:09)
Yeah, sounds super cool.
TJ Miller (41:23)
I think it's the evolution, the evolution now. So it's open claw now, right? So, some people have been asking me like, how does this compare to open claw? And I'm like, well, it's not as like automatic and insecure as open claw, but like, can you extend it? Yeah. Like you can extend the heck out of this thing now.
So you can add new prompts in the prompt chain for the system prompt. You can add new context to those prompts, too, like Google Calendar. Or if you wanted to make your own Todoist, you could totally do that. If you wanted to give it bash tools where it could run random bash commands on your system, yeah, you can build that in, too.
totally viable. So if you wanted to open, open claw on top of this, you totally could. Like, and that was a cool realization was like after the like customization refactors, which I don't know if I even talked about, I did a huge pass on customization. And allowing for all of this stuff. like now I'm at a place where I'm like, oh, yeah, someone could totally take this and like, extend it into like their own open claw to like for sure.
Chris Gmyr (42:27)
Yeah, definitely.
TJ Miller (42:29)
The UI
Chris Gmyr (42:29)
Nice.
TJ Miller (42:30)
needs some adaptations, I think, in order to make that happen, but like very feasible on the like PHP side of things.
Chris Gmyr (42:37)
Yeah, yeah, totally. Well, that sounds awesome. Yeah, all the memory and true stuff is super fascinating. Is that all stuff that you just came up with thinking through the system? Or have you looked at brain development research or any sort of medical information of like, I wonder.
if that could be a potential future upgrade or adjustment of knowing how the brain actually works. you're identifying all these different layers right now, but having the ability to point to something a little bit more concrete from the medical world and model it similar to that, I don't know, might be an interesting task.
TJ Miller (43:23)
Nope, no research. This is all just vibes off the top of my head. Like stuff I've been thinking about for a while and, you know, just getting ideas as I'm implementing things, you know.
Chris Gmyr (43:33)
I love that. It's
very intuitive of you. So congrats.
TJ Miller (43:36)
It's yeah, it's just been like, yeah, just vibes
of things that I've thought about. And I'm sure I've accumulated bits and pieces over the last few years of like researching other stuff and like all the other times I've tried building something similar. You know, I think I think doing some further research would be really interesting. Something I really want to do is I really want to visit graph memory.
as either like another piece of memory or replacing the current semantic memory system. But I don't know anything about that. I don't know anything about graph theory or how I would do this. So like, this is perfectly primed for me to like dive into AI and like have it teach me about graph memory and then implement some graph memory. That's a place that this could totally go to. And I think that's probably
Chris Gmyr (43:56)
Mm-hmm.
TJ Miller (44:21)
most appropriate is like memories as a graph and then relationships between those memories and like having that all like crawlable and searchable and everything. think that and it's ideally where I want to land with all of this but like I don't know anything about it. I just want to get I want to get semantic memory working first and then I can like expand the graph memory later.
Chris Gmyr (44:43)
Yeah, yeah, that's definitely the right way to approach it. Yeah.
TJ Miller (44:47)
But yeah, this is not science-backed at all. This
is just vibes all the way down.
Chris Gmyr (44:51)
That's cool. That's cool. I like it.
Nothing wrong with that. It's yeah, it's super interesting. I love it.
TJ Miller (44:54)
Yeah.
I've been, and because of that, I've been consistently surprised with how effective it actually is because I, yeah, just straight, straight vibes and ideas and just putting it down. And that's one of the things I've loved about building this with AI is I can iterate so quickly that like, can have an idea, we can implement it. I can scrap it. We can evolve it. can, we can work on it, you know, all.
so fast that like it's way quicker than it would take to implement anything. So like the ideation process is so rapid.
Chris Gmyr (45:31)
Yeah, yeah. Nice. That's awesome. Well, yeah, when I wrap it up. Sweet. Thanks for listening to this lately, Kevin and podcast show notes and all the links and social channels are down below and also available at slightly caffeinated FM. If you have a question for us or have a content suggestion, go to the website and ask a question page and we'll feature it in an upcoming episode. Thanks for listening and we'll catch all next week.
TJ Miller (45:34)
Yeah. Sick man.
Yeah, we can wrap it up from here.
Creators and Guests
