Gas Station Coffee, Code Disconnection, and Hooks

TJ (00:00)
Yo, welcome back to the slightly caffeinated podcast. I'm TJ Miller. So Chris, what's new in your world,

Chris Gmyr (00:04)
And I'm Chris Gmyr

Uh, yeah, I feel like nothing too crazy this week at work. I'm on call, so it's just been jumping around to like a lot of different like triaging things and keeping an eye on Datadog a little bit more so than I usually do. So it's been a little bit of a jarring experience, but not too bad. But been trying to utilize Claude Code and more of our repos and services that I haven't really worked as much in.

to do some of the triaging. So that's been interesting. Various levels of success with that because some of the new repos, I don't have the information or prompts like as dialed in as ⁓ my more common repos. So that's been like interesting to see and like a fresh instance what changes still need to be like made and kind of iterated on. So as we hopefully like spread out claude usage to the rest of the org,

That's something that I'm gonna have to keep in mind too is like how do I get these like dialed in a lot faster and kind of toolify some of that stuff. So TBD on a lot of that, but just something that kind of popped up this week as I was triaging other services.

TJ (01:15)
Yeah, man. I, I'm actually kind of running into that a little bit too of I've been running a lot of it, just like experiments with Prism and for a lot of that, I'll just spin up like new Laravel apps, and experiment inside of them. have a couple playground Laravel apps, but like they're getting dirty with like lots of like too much testing inside of them. So now it's just like, they're kind of garbage. so I just say I'll spin up a new Laravel app and then experiment inside of that. and so.

I find myself very regularly trying to like reboot strap my clod setup from, you know, trying to like distill everything from either the Geocodeo repo, which I have things pretty dialed in for, and then the Prism repo, which I have things like really dialed in for. and then trying to like extrapolate that out to like, then like, I gotta put that in the new Laravel app and all of this. So one of the things that I've been starting to look into, I haven't gotten very far at all, but.

claude code plugins. they have like, they have a plugin infrastructure and a plugin marketplace. So I'm wondering if it makes sense for me to like, turn my setup into a plugin. and I'm thinking that for Geocodeo too, because like we can talk about this a little bit later, but like I've been getting really heavy into kind of what we talked about last time where I've got

like skills, the skill activation hook and everything. And I want to distribute that to the rest of the Geocodeo team so they can have that workflow also with like the same skill sets and everything. So it's like, well, do I just like commit that to the repo or do I like make it a plugin so it's easy to distribute and then moving forward, it's easy for me to like continue to update and like district, like have that like nice and easy distribution for the rest of the team to.

So that may be something to look into on your end too is like, how can you like plug in a file you're set up for one distribution purposes, but to making it easier to set up, you know, new, new repos with like at least off the baseline stuff.

Chris Gmyr (03:14)
Yep, totally. I briefly looked into plugins because I've seen a bunch of people mention it on Reddit, but I haven't had the chance to really dive into it yet. But yeah, everything that I do for work moving forward needs to be totally sustainable for the entire org. So that's a lot of people to track down to update if we need to push out an update where plugins can do that automatically behind the scenes.

that would be ideal and to all the tooling that we need via different plugins. So yeah, totally interested in chatting about that. But yeah.

TJ (03:49)
Yeah,

I'll maybe turn that into a, I don't know, today is Hack Friday. You know, we're recording a day late, but like it is Hack Friday at Geocodeo, so maybe I dive into plugins a little bit more today.

Chris Gmyr (04:00)
Yeah, yeah, totally. Yeah, besides that, just got some scout stuff going on, a couple of meetings we're doing, like a food drive this weekend. hopefully getting some good response from that to help out with the community. And yeah, just getting chillier by the day. So not terribly cold, but just chilly for us down here in the South. So can't complain, though.

been looking forward to some sweater weather and some nice heaters on and fireplace and stuff like that. So can't complain.

TJ (04:35)
Yeah, man, we got like two inches of snow since we've last recorded. It was, yeah, we got, we got dumped on a little bit. I mean, it, it stayed for like 24 or 36 hours. Like it wasn't around very long, but it definitely, definitely hit us. And, ⁓ I was out like driving around a little bit and I'm like, man, this is Michigan. Like y'all should be used to driving in snow. Like I know it's been a summer, but like.

Chris Gmyr (04:37)
⁓ That's snow already?

TJ (05:00)
How did y'all forget to drive in this stuff? It was so bad.

Chris Gmyr (05:03)
Yep.

Yep. Totally. Same thing like up in, when we were living in Syracuse, it's like first like decent snow of the season. It's like, y'all have lived here for so long and deal with this for like eight months out of the year. How can you forget? Like after a few months of forgetting how to drive in the snow. Same thing down here. Like if we haven't gotten like rain for a while, like people just go crazy. And it's like, yeah, I don't know. People are weird. Yep.

TJ (05:16)
You ready?

Yeah.

Yep. 100%, man. 100%.

Chris Gmyr (05:31)
But anyway, what's new in your world?

TJ (05:34)
man. I feel like not a lot, but also a ton. have I've been not doing a lot, but running around like crazy. I've got some like, yeah, I've got some like home home projects I'm working on that are just like very slow moving, but require a lot of like busy work. And I'm bringing in contractors to do stuff. So I've like

Chris Gmyr (05:43)
I feel that.

TJ (05:56)
coordinating with people and getting estimates for things. And it's just a nightmare. And this is all like stemming from being at Larricon and my basement flooding while I was gone at Larricon. But everything's like finally locked in. They're coming next week to do a bunch of work. And hopefully that solidified like that. That finishes waterproofing things and I can like then move on to like refinishing the basement. So.

⁓ Outside of that man, like trying to keep up on Prism. I've been running a lot of just like experiments and building different workflows and trying stuff out, just trying to like tease some edges out for Prism. And then I've got a phone call with a contributor coming up that I think is going to set us up for some really cool new developments.

maybe a few new packages into the Prism namespace. So very excited about that. But other than that, man, yeah, working, living, you know, nothing, nothing too crazy.

Chris Gmyr (06:54)
Yep,

totally. I'm excited to see what happens with the other contributor and what comes out of the Prism conversations.

TJ (07:04)
Yeah, yeah, no, it's going to be pretty exciting. There's some other stuff that I've been starting to play around with. I want to see what I can do to make Prism a little bit more multi-modal friendly, like generating media. So I've got like 11 labs, which I did the...

speech to text, but I haven't done text to speech yet because there's just like so much functionality that is available there that like, really kind of needed to like see how, you know, what I can do with the API to make it a really pleasant experience. But also now with like video and other audio providers and like other image generators and stuff like that. It's like, all right, I now have to like maybe rethink the API a little bit.

not as a, like breaking change or anything, but like refactors. So, like refactors and like new stuff, like new, new methods and things like that to be able to better deal with, like different media providers. So, yeah, we'll kind of see what, what spills out from there.

Sick man, so you wanna talk a little bit of coffee before we move on to, I'm sure more AI?

Chris Gmyr (08:15)
More

AI. Yeah, like I don't have anything new on the coffee front. Still have my usual go-to. Haven't broken open the new bag yet. So yeah, anything new on your side?

TJ (08:30)
yeah, man, I, nothing crazy. Like I'm still sipping on counterculture. ⁓ I might do another week of that. We'll see, what's available. gotta go do some coffee shopping, see them down in my last bag. so we'll, we'll kind of see what shakes out there, but, fun discovery. my local gas station, that's like a block and a half away. I found out they have like a really decent coffee. It's like, I've never tried it before.

But they have the kind of coffee machines that like grind per cup. So it's like they've got like each machine has like three different type of beans. It's got their like their house blend, then like something different and then like a decaf or something. like. But it's all like fresh ground per cup, like ground when you like. Hit it to order it. So I.

was pretty tickled about that because you know sometimes I want like another cup of coffee but I don't want to go through making a french press or like I don't have any like super convenient ways to make coffee right now so if I want to go out and just like grab a cup I'm super stoked that this is like decent so that was a fun discovery

Chris Gmyr (09:34)
Yeah, well, it's

already a step up that they have grinders built in. And it's not just like regular coffee, where it's just like huge, you know, five gallon carafe of stuff that's just been baking all day and, you know, super burnt. So yeah, it sounds like, I don't know, probably some of the better gas station coffee that you could probably get.

TJ (09:46)
Yup. Yeah.

Yeah, it's like it's not it's not burnt. It's not, you know, stale. It's not been like sitting around all day. Yeah, it's it's like it's pretty decent. So that was a ⁓ really cool discovery.

Chris Gmyr (10:08)
Very cool. I like it.

TJ (10:09)
Yeah.

So we've had this topic, like moving on from coffee, we've had this topic like kicking around and we've, we've kicked the can on it for a couple of weeks, but like, I feel like

Chris Gmyr (10:19)
Yes.

TJ (10:21)
I definitely feel this. I'm like, I'm feeling it right now, both a little bit with Prism, but, definitely with some of the stuff at work of, kind of this, this concept of now working so much with like Claude code or AI coding agents and everything that there's this like kind of feeling developing where I'm feeling a little bit more disconnected from the code.

I'm feeling a little bit rusty on my like coding chops. and I, I feel like my prompt game is like really strong right now, but like, I am getting this like kind of growing sensation where I'm a little disconnected from the code, little disconnected from the architecture. And instead of just like diving in and like going to fix something, I find myself just launching Claude code even for like some simple things and just having it do that. Like the other day.

Uh, this is like only slightly relevant, but it was like someone had asked, like I had posted experiment that I had done with Prism. Someone was like, I'd love to like take a look at some more of the code. So I asked Claude, so instead of like doing this myself, I asked Claude code to like, yeah, go create like a gist with these files. And like it used the, the, GitHub CLI made the gist and everything for me, but like I'm finding myself doing that kind of stuff for like quick fixes, small changes.

You know, I'm not I'm not finding myself like opening an editor anymore. I'm like, yeah, Claude, go, go after this. And I'm feeling a little disconnected from it. Like, I don't know. How do you feel?

Chris Gmyr (11:50)
Yeah, I feel similar.

And I kind of like have been thinking about it in two different ways. Like, yes, it's a lot easier to like jump in and be like, hey, investigate this thing or like make a couple of gists or, you know, answer this question or something like that. And it feels, I don't know, almost like cheating, you know, like you should know like where to go and how to get it. And like, I need to physically go to a new gist page and like copy and paste this thing in and then share it out and whatever. But also those steps.

for as simple as they are still takes up a lot of time. Even though it's a simple task, could take 10 minutes, five minutes, half an hour, depending on what the thing is that you're looking for. And those things are just so much faster when Claude does it. But also the more that you do it, the less you know or feel more connected to the code. Same thing with small bug fixes or even any size features.

TJ (12:29)
Yeah.

Chris Gmyr (12:45)
Back in the day, if work or a client asked me, ⁓ could you investigate this or fix that, I knew exactly which part, which file probably, or set of files that I needed to go to and could bang it out pretty quickly, as long as it was straightforward and not a big architecture change or whatever. But now it's like, hmm, I might know where it is, but probably not. So I'm just going to ask Claude and like,

TJ (12:54)
Mm-hmm.

Chris Gmyr (13:12)
it's just gonna go and jump in and like I don't make those like brain synapse connections between like what I'm asking it and where things live or what they do. And it's a little bit odd for me in a couple different ways because with the new job I've switched tech stack so I really don't know or I didn't know like very much coming into it. using Claude as...

TJ (13:19)
Yeah.

Chris Gmyr (13:35)
a mechanism to get onboarded quicker. And I know the things that I want to do in like an architecture sense or like a software developer sense, but I don't know how to do it like in that tech stack. So that was a really good way to get like onboarded and up and running very quickly. And I still have it like explain like, why did we do this instead of that? Or like, you know, this seems odd. Like, what is this? And it's like, well, it's because of XYZ.

TJ (13:45)
Mm-hmm.

Chris Gmyr (14:00)
in the package or the language or something like that. It's like, okay, but it doesn't really, it doesn't sink in, I feel like as much as grinding out that work or like figuring out like the hard way or going to the docs myself or whatever.

TJ (14:13)
Yeah. ⁓

Chris Gmyr (14:16)
So I'm in between like, I don't know, kind of like a hard space with like not feeling super comfortable with not knowing very deeply the tech stack. But on the other side, I feel like I'm doing probably a lot more than other people in my level because like as a staff engineer where I'm at, like we don't really have a lot of time to code. We're expected to code, but.

we just don't have a lot of time for because we're doing planning, we're project lead stuff, we're coordinating with other teams. It's just a lot of other non-coding work. So I feel like my time is very limited in my code and IDE time. So I need to be as efficient and pointed as possible with that. And looking at it from that perspective, I feel like I'm actually doing a much better or better than average job because I can

TJ (14:40)
Yeah.

Chris Gmyr (15:04)
coordinate all these ideas in multiple apps and multiple like Claude instances and like get things done or like extract things from these apps and services that we have and distill it down like very easily and cleanly. And I go through like everything before I share it out to any part of the team or whatever. ⁓ But those things would take me even longer if I was to like grind through it myself and trying to get the same output.

TJ (15:23)
Mm-hmm. Sure.

Chris Gmyr (15:32)
which the output is vastly different between probably what I could come up with or missing different pieces than working with code and iterating on it over time. So I feel the disconnect, but I also feel like a lot of the benefits from it too. So I'm assuming you're kind of feeling the same way of like, but where do I sit on this blurry line?

of using it too much or not enough or how much time do I put into just going out the old fashioned route compared to Claude Code. So hopefully that all, I don't know, made sense.

TJ (16:08)
No, for sure. I mean, there's times where...

I've like, I'll sit there and I'll have to, like, I don't like what claude code has done. So it will take me like two or three iterations to get to like the final thing. Like, let's say I'm like working on something in Prism, right? It'll take me like maybe two, like I'll sit through like two or three iterations with Claude of like reprompting it starting from scratch, like going down, like maybe a little bit different path with the implementation. And you know,

I maybe could have sat down and got it right the first time writing it myself, but I'm opting to sit there and like, get Claude, like sit there and work with Claude to get Claude to do it the way that I want it to, or like a way that I align with. And I find that really interesting that I'm like willing to like burn the extra time, like, you know, reprompting it. But I mean, ultimately even like having Claude go down the wrong path and doubling back and reprompting it to like do the thing again.

I'm sure that's still in a lot of ways more efficient than like, I guess what I'm trying to say is like, it would probably take me the same time amount of time to implement it myself as it would to iterate with Claude two or three times. So I think like net time and efficiency wise, like, I don't think I can beat it. Like, you know, and with

Like, look, I've got a zoo. I've got five dogs, three cats. I've got a 12 year old son who's like now doing science Olympiad. He's got after school clubs. He's got like his first school dance tonight. Like there's like stuff going on. And then I've got like my wife and like, I'm just, I've got like a lot of life going on and prism. And so it's like, and work in like, there's no way I could.

Chris Gmyr (17:49)
Mm-hmm.

TJ (17:56)
be doing what I'm doing with Prism, not using AI right now. So like.

I think this feeling disconnected from the code.

I don't think there's any way around it right now. just, there's so much for me that I want and like need to get done that there's just, there's no way I get it done without AI at this point. Like.

There's just no way like structured output with tools for prism. Like there's no way I could have like, I, I, I feel like, look, I knocked that out in a weekend. Like I was, I was gearing up to spend a week working on that. And like Claude and I knocked it out in like five, six hours on the weekend.

like, I, there's literally like, no way I'd be able to like keep moving prison forward and doing these other things in my life. Without AI coding at this point. like, I think I've just kind of got to like, take that disconnect. And, you know, I think there's a lot to be said about to like, a few times now I've had Claude do something in the code base that I wasn't

Chris Gmyr (18:39)
Yeah, can't beat that.

TJ (19:06)
like super knowledgeable about, it like did the thing, it did the thing correct, the tests all passed, like I'm very agreeable with how it approached everything. But then I'm like, yo, take a second and like, teach me about what we just did, explain this stuff, like walk me, walk me through these changes so that I now know this better. And I've done that a couple of times and that's been super valuable. So I think if you're feeling that like, you know, when you're done with the work, have a conversation with Claude about like,

what was done and, you know, kind of, think you can kind of like combat that a little bit.

Chris Gmyr (19:40)
100%. That's been helpful too. Yeah, just not having like a ton of time being able to code and I don't know. Really like have the understanding like even after these sessions. But I think that's. No, OK, but like a work in progress too. And I think like something that will all have to keep in mind moving forward, because you know still a lot of like engineers are like, oh, you know, AI is going to take my job and.

You know, whatever. It's like, ⁓ maybe some parts of it, but like not, not really. Cause I think our, our jobs as like the human engineer are going to be like elevated above the code a little bit more and almost being like a tech lead of a project or a task. And these like agents are your, you know, engineers, workers, junior, you know, engineers and stuff like that. And

Like you're gonna be more planning and directing and testing and reviewing instead of like hands dirty like in the code. And some people might like that, some people might not. There's always the like option to dive in ⁓ to the code when needed. But I think as these tools get more solidified, more businesses start adopting it, like it's just gonna naturally go that way because

waiting for someone to code it out the old fashioned way is not going to align to metrics or goals or whatever. And those people might have a much harder time in the new world adopting a tool. So there's lots of things that could be said about that. But I see it as just progress. It's like there's a reason why we don't all use notepad++ anymore.

You know and we have like full-blown IDEs and now we have like AI tools and all these things like in our toolbox to make us Hopefully better and more productive And useful to like businesses and companies and stuff. So I think just being okay with that shift and Letting go a little bit of that control and like as long as it works Maybe it doesn't have to be on our percent is like 80 % or 90 % good enough

So it'll be interesting to see how that shift changes over time.

TJ (22:02)
Yeah, I think so too. And I think there's just a lot about like, you know, tools, like there's still just like so much coming out on the tooling front. I think there's so much evolution that is going to happen. But I think it's going to be. I think.

As far as like career things go, I think AI is going to.

continue to make, you know, the more senior people a lot more productive. And it's really going to make things, I think in a lot of ways harder for juniors to get to that senior point. but I think it all depends on how you use it too. Cause like, I use AI to like teach me stuff also. So like, if you're trying to learn how to code, there's a lot to be said about being able to like go into like Claude or

Open AI or like chat GPT and be like, yeah, teach me this concept. Um, every time I have to go back and like work on go, uh, significantly, I'm like, I don't work with it enough that I'm like, need a reprimer. So I'll go back to like the first time I like really invested in learning go, I went to chat GPT and I'm like, yo, I'm a very experienced PHP developer. Uh, teach me go from the perspective of PHP. And like that was.

such a fast level up that I think like.

juniors level like leveraging that will will take him really far. But I don't know. A little bit of a tangent, but.

Chris Gmyr (23:28)
Yeah.

Yeah. No, I think it's good to call out because I don't want to kind of bypass getting into the industry. Because a lot of people now I've seen are anti-getting into dev and engineering, which I don't fully back that. I think anyone who is willing to do the work and excited about it can get into it.

And it still might be like a really good time to get in because you can be taught these things like you just said, like a lot more easily. But I do think you need like a good foundation to get into any sort of like AI coding. You need to know like the basics and fundamentals of, you know, pick a language doesn't really matter. Pick like two languages. Because I don't think juniors coming in and just like five coding stuff like they're not going to have those fundamentals and really know about.

architecture and patterns and the things that make good software good. And they're going to really struggle with that. Where if you have the foundation maybe assisted by AI, but you're still downloading that information on your human side, then you're going to be in a much better spot overall.

TJ (24:26)
Yeah, and I'm like...

Yeah, I review so much code that Claude writes. Like, I think...

And you know, that's, that's a seniority speaking. Like I, I've been around long enough that I, can review this code and kind of like, no, no, what's good, what's not good. And like have Claude go back and like rework things in the correct way. Whereas I think, you know, someone coming in as a junior, like mostly vibing stuff or something like, you don't know if that's what, what code it's writing is good. so there's that, that's where I kind of get to like,

Kind of a little bit more dangerous in the hands of juniors, but very powerful in the hands of people who are a little more senior.

Chris Gmyr (25:17)
Mm-hmm. Yep.

TJ (25:19)
So moving on a little bit, think this is an interesting topic I'd love to hear a little bit more about this, like, rewriting historical get commits with AI. ⁓

Chris Gmyr (25:28)
Yeah,

it's ⁓ something that I came across in one of my newsletters that I subscribed to, but it's a git repo. I'll put the link in the show notes. But basically you aim this like AI node NPX command and it'll go through your entire repo. It'll find and basically ⁓ assess what that commit is and write like a short little description about it and.

rewrite your whole Git project history. So if you have a bunch of just minimal commit messages, like fix or update or whip commits and things like that, it could go in and reevaluate everything and update and force push that back to your repo, which could be helpful if you're adding more teams or team members or transferring a side project to a company that just bought it or.

whatever the case is, or just like really so many use cases. So yeah, I just thought it was a cool little tool that someone made and could be helpful for some of those projects.

TJ (26:32)
Yeah, this is interesting. ⁓ I know at work, Matias uses, he's got a slash command for writing git commits and like pull request messages and stuff. And it's pretty effective. Like it's been, it's nice. ⁓

Chris Gmyr (26:43)
Mm-hmm.

TJ (26:47)
I'm really not great at doing that stuff. having some AI assist there is really nice. I'll have it write PR messages and stuff for me. Here's the whole change set of everything we worked on. Just write me a descriptive PR message, because I hate taking the time to do that. I always miss calling stuff out. So it's really nice to get just like.

AI's hands in that. Like I personally, in like all of my Claude MD files, it's like, do not interface with Git. I don't want you making commits. I don't want you doing this stuff. Like I want to manage that. And I've only ever had it like.

attempt to do get stuff like once or twice with those rules in there. I know you just had something. I know you just like added a hook to prevent that. Yeah.

Chris Gmyr (27:33)
It did just add a hook. It was

terrible. It just went off the rails, even though I have something similar in my Claude MD files. was just like, oh, let me just commit this. And then I was investigating a bug earlier this week. so I was just on the main branch. And it was just like, oh, let me fix and commit this and push it. And we have protections on the main branch. So luckily, it didn't actually go anywhere. But then, uh,

TJ (27:52)
Mm-hmm.

Chris Gmyr (28:01)
I think I asked that to stop. I created a new branch for it and whatever. And then I continued on the new branch doing all sorts of things and ended up pushing that branch, which I ended up deleting because I wasn't ready for it yet. So I'm like, OK, I'm done with this. I was so mad. I was yelling at it. But yeah, ended up developing GitHub to block add, commit, and push. So that has

TJ (28:15)
Yeah.

Chris Gmyr (28:30)
caught, I think, one or two after that. Because I was able to remove it from the Claude empty files, because then the hook will just take care of that. So yeah, it was just super annoying.

TJ (28:40)
Yeah. Yeah, I've never

approved git commands, so that always prompts me before it tries to use git. So that's the other way around it is I don't have permissions enabled for it to use git, so it has to prompt before it tries to run a git bash command or something. yeah.

Chris Gmyr (28:48)
Hmm.

Yeah, I've had it opened up

for searching commits. I've had it do some rebasing for me with merge conflicts and stuff like that, which is helpful. But yeah, the committing hasn't really been too huge of a problem until, I don't know, more recently. So I don't know what the deal is with that. But I'm like, OK, too many times. We're just going to put a hook in, and I'm just going to deny you of everything here.

TJ (29:22)
Yeah.

Yeah.

Yeah. And I mean, to like summarize a bit, like I've had pretty good experience so far with having Git, writing PR messages, like I've had it before take, I have had to do some commits before, but pretty infrequently, like we had a pre I sat and like vibed with Claude for a while on some code and, I had it break up the changes into a few logical commits because it was just like, we got

We got out there before we got out pretty far before like, should have been making some like commits along the way. So I had to like break it up into a few logical commits, which was nice and like definitely made for a little bit easier reviewing. But, yeah, this seems cool. I think there's, I think there's a lot of value in like having AI cut commit messages and like PR messages and stuff.

Chris Gmyr (30:13)
Yeah, yeah, and yeah, I re evaluate having it like write the commits for me. I do have a slash command for the PR description, which aggregates all the changes for the branch. We have PR template file so it like fills in it based on that and some other information. So like that's been helpful. Yeah, maybe just add some commit suggestions overtime, but not actually.

TJ (30:32)
tour.

Chris Gmyr (30:41)
them because I don't know thank you

TJ (30:43)
Yeah. Yeah. And clog code is like, I'm sure I haven't looked at the system prompt for clog code in quite a while, but I'm sure it's in there somewhere where like it tries to, if it does cut commits, it tries to like attribute itself and the commit messages. So like that's something that I am not a big fan of.

Chris Gmyr (30:59)
Yeah, yeah. I think if I was going to have it commit directly, I would probably add some sort of template file for it to fill out with explicit instructions. Almost like a git commit like clod file or something. Yeah, not close to doing that at all yet.

TJ (31:13)
Mm-hmm.

Yeah,

Matias has got this cool like ship command slash command where he runs it, creates the like, it follows all of the like conventional commit guidelines. So it'll like create the branch, cut the commit, like make the PR message and like handles all of that stuff, which is like pretty sweet. yeah, yeah. I think that was like a really cool like slash command. Like that's something that I think I might.

start toying around with next is like maybe a couple slash commands for a few utility pieces because I've not played with the slash commands at all. I'm still very much in like skills land and just kind of refining that workflow.

Chris Gmyr (31:56)
Yeah, I love the slash commands. I think you'll find a lot of benefit in that. Just doing the same things the same way all the time with guidance on that is really nice. Yeah, highly would recommend.

TJ (32:10)
Yeah, man. So this is another interesting topic that landed on our board. Open AI versus Anthropic on the financials front. I'm curious, I think you had added this one. I'm curious.

I'm curious.

Chris Gmyr (32:24)
Yeah, so this is a Wall Street Journal article. Again, I'll put the link in the show notes, but in general, it matches up OpenAI with Anthropic and looks at all the projects that it's working on, the focuses of both companies and just the general financials. We don't have to get in too deep into the financials, but basically the takeaways were that Anthropic is way ahead of OpenAI for

just even breaking even. Like even with all of the investments that both companies and like all the other like AI companies are getting, like they're still at a severe deficit. But I think what really stood out to me with this is that like Anthropic is focusing more on corporate customers and kind of like controlling its spending and just the general

TJ (32:53)
yeah.

Chris Gmyr (33:18)
feel and like we talked about vibes before like the general vibes are just I don't know better at least for me where like opening I like they're getting into video and like all these other you know AI projects and not as much I don't know seemingly in the like corporate or productivity space or I don't know just they're

directions are completely different. And I personally align more on the anthropic side, which is probably why we both landed on Claude Code and Anthropic more. But yeah, it was just an interesting read. I think I just align probably with how Anthropic is doing it and not trying to spread the AI net as far and wide as possible and getting deeper into debt on the open AI side.

some.

TJ (34:16)
Yeah. I mean, you can see it from the like types of products they choose to focus on. I think it's been really interesting to see Anthropic focus a lot on like, I mean, they've always focused a lot on like safety. I feel like they've focused a lot more on like moving a little bit slower, but more deliberately. And I really like their focus on like, in like the integration side of things. Like they've been doing a lot on like the integrations for.

Chris Gmyr (34:37)
Mm-hmm.

TJ (34:43)
which is like really cool. But there are things that.

kind of detract away from that. Like Anthropic doesn't really have a super solidified, like structured output mode, whereas OpenAI has like a very like strong structured output mode. And like, you know, that's, there's some things like that that become like kind of difficult, you know, moving between the two providers. So it's like some things I really want to continue using Anthropic for, but I need strong structured output.

So I kind of like have to use OpenAI for that. So I think there's like, it comes at a bit of a cost, but I'm very aligned with Anthropic. very, I'm deep into their ecosystem. You know, I'd really like to try Codex, but...

I'm having a hard time taking a step back and losing all of the work I've put into dialing in Claude Code. So I'm very invested in that. And work-wise, we just signed up for an Anthropic Teams account. So we're all on the Anthropic train. But.

Chris Gmyr (35:45)
Nice.

TJ (35:49)
I'm not surprised just the way that Anthropic operates. I'm not surprised to hear that they expect to break even in 2028. And in that same time frame, OpenAI is just going to be operating at this like massive loss. But they do. But OpenAI does does do so much more like Sora is crazy. You know, so. I don't know. It's it's interesting seeing the two different things play out.

But I also don't think open AI is going anywhere. And I don't think Anthropix is going anywhere either, you know?

Chris Gmyr (36:21)

Yeah, don't think anyone's going anywhere at this point, like everything is too hot right now, but it'll be interesting to see how it plays out and if opening night still seems to go more broad and how pointed like Anthropic continues to be or if they're gonna get the itch to spread out a little bit more. So yeah, it'll just be interesting to see what happens with all these big companies over time.

in the AI space.

TJ (36:49)
Yeah.

Yeah, no, I think it'll be really interesting to see what happens. And who knows between now and then, you know, providers pop up, you know, left, left, like the space changes so much so frequently that it'll be interesting to kind of see like, who by by 2028, like what's really what's really happening, you know, if they're if they're looking to break even by then, like, yeah, what's what kind of development is going to happen between now and then to like

Chris Gmyr (37:09)
I

TJ (37:15)
steer that or see if they're able to like meet that goal or whatever, that projection.

Chris Gmyr (37:20)
Yeah, that seems like

forever, but also, it'll be here quicker than we know it. So yeah, it'll be cool. But yeah, moving on. Yeah, you got a Claude and Skills and Hooks update for us.

TJ (37:33)
Yeah, so I talked about this last time too. I'm very much still on this train. It's been very effective where I've got, I've got this like skill activation hook that I pulled from this like Reddit blog post, which we can link to again too. But I pulled this skill activation hook, which is just kind of like on user input submit, it will remind

Claude the available skills that it has to use and guides it towards using these skills. Because ultimately, without that, as the context gets bigger, it's going to lose attention on the fact that it has these skills available to use. So this just reminds it, hey, you have these skills. You should be using these skills. And here's the skills based on the user's message. Here's the potentially like.

best match skills for the task. So it also is like kind of aligning, like which not only like a reminder of here's the skills you have available, but like here's skills that are maybe going to be better for you to use. And that workflow has been working out great. And so like the skills that I have, there's a, I still have everything broken out into separate skills. I kind of want to work on progressive disclosure and see how that goes. But I have a generic PHP skill.

I have a Laravel skill. Depending on the code base, I have a Pest or PHP unit skill that I also put in there. And then I have a generic planning skill, which just steps it through how I prefer it to do research up front and then plan based on the research and iterate through it. So there's this planning workflow that I prescribe for it to follow. So I found this to be like,

super effective. Like after adding the skill activation hook, like if it goes into plan mode, it'll like load the plan skill first and then like go through all its planning. Then we get plan mode. And then there's also some like context doc generation prompting that I have in there from like big or complex tasks, create this like set of plan, task and context documents. So I've

I've really enjoyed working on this. I think I'm probably going to write this up as a blog post and post it on the GeoCodeo code and coordinates blog of just like, is where my current workflow is at. And as we were talking earlier about plugins, like I want to distribute this system to the rest of the GeoCodeo team and make it easier for me to spin up, you know, new applications and get clogged adjusted quickly.

So I think I could probably also accomplish some of that with like a Laravel starter pack for myself or something like that, but.

I think the plugins might be something interesting to explore there. But yeah, that's the gist of the workflow. So I just kind of wanted to revisit it and be like, I'm still using it. You know, it's been, I think we missed recording last week. So it's been like two and a half-ish weeks. I think that I've been running this.

Chris Gmyr (40:31)

Yeah, no, we recorded last week.

TJ (40:34)
No, we did record last week. So maybe, yeah, maybe I'm coming up in like two weeks then of like using this, the setup. I'd have to, you can even look at the Reddit post. Like I set this up like a day or two after the Reddit post came out. but I've been pretty impressed with the setup. it's, it's been working really well. The hook locks everything in the context docs are really, and like the context docs are also something I pulled from the Reddit post. It was something I was sort of doing anyways.

but this kind of like formalized it into something I was very agreeable with. So I just ran with it. You know, the context docs are something that it's not been very consistent about using. I've had to remind it to use the context docs. So I'm either going to drop that into a hook and see if I can enforce it via a hook, or I'm going to turn it into a slash command, I think. And so when we get like out of plan mode,

just slap it with a slash command to like make some context docs or see if there's a hook I can maybe, you know, on plan mode exit or something. I don't know what hooks are available, but if there is like a plan mode exit, that'd be perfect. It's like, yeah, plan mode exit creates your context files and then go from there.

Chris Gmyr (41:45)
Yeah, yeah, that'd be cool. Yeah, I'm definitely interested in the plugin, so I'm going to have to see if I can find some time to dive into that too. But yeah, keep us posted. And I'd look forward to that blog post if you get a chance to write that up.

TJ (41:53)
Yeah.

Yeah. Yeah. I think that's, that's something like, might, I might explore a little bit today because being that attack Friday, the current project I've been working on is like the skills in, activation hook and stuff. Cause I wanted, I want, I do want to get that distributed to the team. Cause it's been so effective for me. want to like, you know, being that my job title is in the AI space. Now I feel like that's part of my responsibility is like making sure the team can be effectively using Claude code or.

you know, whatever, whatever we're using as far as like AI agents go.

Chris Gmyr (42:30)
percent.

TJ (42:31)
Sick, you wanna talk a little bit of Prism updates before we wrap up? Sick, let me actually go look at the repo real quick. See what I've been doing. I've been a little divorced from the repo experimenting. I guess I can talk about that. Like release-wise, I think we've had a couple of releases since we last talked, but the biggest thing that is out now

Chris Gmyr (42:34)
Yeah, what do got for us?

you

TJ (42:56)
which we may have talked about last week was a structured output with tool use. ⁓ I got that out for OpenAI, Gemini and Anthropic. that was outside of streaming output. This has been like the most highly requested feature for Prism. And it actually was there initially, but I pulled it out because it was just getting like too architecturally complex. So I ended up pulling it out.

Chris Gmyr (43:01)
Mm-hmm.

TJ (43:21)
And now that the code base has evolved so much, it actually fit back in really pretty well. But just at the time where the code base was, was just doing structured output and tool calling was making the code just complex and messy. So we've got that back now for at least those three providers. I want to look at Olamma too, because I've been using Olamma a lot lately for testing. So I want to see if we can. ⁓

If I can get structured output into a calling working there as well. outside of that, I've just been like experimenting with like actually building with prism. made a, a little chat CLI. gave it, called it Iris. This is like this little chat assistant I'm working on. just kind of like pushing the limits of stuff. I like Claude for Claude desktop and like Claude.ai they introduced the concept of memories.

And so Claude can like remember things about you. And I thought that'd be an interesting concept to play with in Prism and see like, how hard would it be to build an agent with like memories? and come to find out it's like super easy. Like really you just, there's a couple of core tools that I built into it of like, you know, list memories, search memories, create a memory. And so just gave it these tool sets and like,

Chris Gmyr (44:26)
Thanks.

TJ (44:37)
chooses to create memories on its own as it sees fit based on like the conversation at hand. And I stored all the memories in a vector database using PG Vector. And then when it searches the memories, it uses like semantic vector search against the existing memories. So it's like getting this like semantically contextual memories back, which is pretty cool because you can like

Chris Gmyr (45:01)
cool.

TJ (45:02)
I introduced myself in one conversation, three conversations later, I'm like, yeah, what's my name? And it just like came right back to it. It's like, yep, you're TJ Miller. You created Prism, like all this stuff, which was pretty cool. And then I gave it like via MCP, I gave it access to my file system. I had it do a few things for me there. And then I ended up revoking the file system tool because...

in an unrelated workflow is like starting to like crawl my file system. like, wait a second. This is scary. I'm like, I don't want you to just like have access to everything right now. ⁓ maybe I'll we've gone too far. Maybe, maybe I'll give you access back to, file system tool as an, needed basis, but like, yeah, you gotta, you gotta earn it. so that was pretty neat. And then I gave it access to the SERP API.

Chris Gmyr (45:36)
We've gone too far.

Yeah, you gotta earn it.

TJ (45:53)
which is a like Google search API. So I built a little tool for that. And so it's, and then I give it access to like puppeteer via MCP too. So it was pretty cool. Like I gave it a research task to like go research me and then like create memories based on that. So there's kind of like jumpstart the memory pool of like who it's interfacing with. And that was pretty neat. So that's, that's a little bit of what I'm doing now is just trying to like spend some time.

building and experimenting with Prism to like help tease out new feature sets or new abstractions or things. So I have a few, I have a feeling that there's going to be a few things that come out of that. But it's been just like a ton of fun. It was one of those things building that and like seeing it use memories and like use puppeteer and use search just through like regular everyday conversations.

kind of like surprised me. Like it got me really excited about like this stuff again, because like I, it was doing things that I didn't expect it to do in like a good way. Um, and I didn't know, I was just super surprised, especially using local models for a lot of this testing. So instead of using like Anthropoc or OpenAI, I've been using a lot of OpenAI's GPT OSS. Um, and I've been using the hundred and

20 billion parameter version, which is like the bigger version of the two they released. And I've been using that via Olamma. I've been very impressed with the quality, ⁓ very impressed with the quality. continuing to like double down on using that and experimenting with that a little bit more, especially for like personalized stuff. So I think I might continue to.

Chris Gmyr (47:27)
That's really cool.

TJ (47:38)
build and just hack on this Laravel app and try to, I want to make a little, do a lot of things, personal assistant AI. I want to give it access to my email, my calendar, and that's going to spill out into whole different types of workflows because you don't want to overwhelm your main agent with a zillion tools. So I'm going to have to get into sub-agent patterns of we have

like the main agent you're conversing with, and then maybe for like email or something else, it may like send in a request. And then inside of that email tool, there's another Prism agent that knows more about like going through email or like calendar, stuff like that. So it kind of might get into some like sub agent patterns, which I'm excited to explore there too, because that's just like a whole nother set of workflows. ⁓

Chris Gmyr (48:30)
Yeah, that's

really cool.

TJ (48:32)
But I'd love to get back to having this sort of do everything or do lots of things personal assistant.

you know, that I think there's just like so much that I could have it do. Like I get like three or four AI email newsletters and it's like, yeah, I'd really like some help distilling what I would find important out of those things. And I can like totally build that into a little app that like does all of that. So we'll see where that goes. The biggest thing is

Chris Gmyr (48:54)
Mm-hmm.

TJ (49:03)
I don't have a UI that I want to work inside of yet for this, like everything personal assistant.

I may, I may go the telegram route and just, you know, build, heavy into making a telegram bot assistant because there are so many affordances inside of telegram. And especially now with like it having memories and being able to like remember things across long conversations. don't feel.

as bad like dropping off older messages. Because like in Telegram, you'd have like just one really long conversation instead of how you use chat GPT or Claude AI, where you're going to like spin up a conversation, like a new conversation for a new topic. Like Telegram, you're kind of just like this long running conversation. memories, I think, are super important for it to be able to like go back and be like, yeah, we talked about this or we've switched topics now. And like

just letting that context window fill up a little bit more. So.

Chris Gmyr (50:06)
Yeah. You'd think you'd have

to build in keywords to switch topics or start a fresh thread within that one or a TBD on that.

TJ (50:19)
I don't know. The other option is like creating like a two person group chat. So like me and the AI bot in like a group chat scenario. And then like there are inside of group chats for Telegram, there's an option to do threads. And so you could do that inside of Telegram too. But I'm thinking that I can probably just engineer my way into it.

like just like changing topic, the AI knowing that we like change topic and then just go from there. Like, I don't know. It's a problem I played with a few times before, but I also don't want to build a UI. Like part of this is I want the visibility into the tool usage. So I want, I would love to see in a chat, right? If I ask it to like, go do some research, I'd love to see it pop up saying, use the search tool with this parameter.

And then you get a new message with like the final response, but like you have the visibility into, it shows to use this tool. It's doing this thing. Here's its thinking. Um, and so I'd really like to have like a UI for that, but I'm in no position to be like building a new chat UI. Like I just, my, my front end skills aren't that strong. I don't want to vibe code it. Um, so Telegram might be the place to do it. Cause I can also do like different message types.

Like the AI could send me a message with a bunch of buttons as options, which is cool. I'd have to build that functionality into some sort of UI. So I'm wondering how deeply I can leverage Telegram as this everyday AI bot thing. I don't know.

Chris Gmyr (51:37)
Yeah, that's true.

Yeah,

that'd be really cool because you have Telegram available to you on multiple devices. It's always with you. So yeah, it seems like a good tool to at least start off with, see what happens, see how far you can get.

TJ (52:02)
Yeah,

like multi-modal support works. So like it can send images, you can send images, you can send files and stuff like that too. So ⁓ that'd be cool. like, give it access to yeah, give it access to like Todoist and all sorts of like other things. So.

Chris Gmyr (52:10)
Yeah. Cool. And that's cool about the threads too.

TJ (52:20)
I'm like, I'm real jazzed about it again, which is like, which is fun. I haven't been excited about like, there's been like, I've been excited about building Prism, but I haven't been excited about like building with Prism in a little while. And now I'm getting like real jazzed about that again, which is great. Cause like, that's my new initiative at work too, is building more with AI. So good, good timing.

Chris Gmyr (52:41)
Yeah, yeah, cool.

Yeah, you got my brain tingles going too with the productivity stuff. And then using Telegram, I'm like, ⁓ that actually sounds really cool. So maybe we can put our heads together and do something with that. I that'd be pretty great.

TJ (52:54)
Yeah, for sure.

Yeah, I think so, man. But on that note, you want to wrap up? Cool, man. So thank you all for listening to the Slightly Caffeinated podcast. Show notes, including all the links from things we talked about and social channels are down below. They're also available at slightlycaffeinated.fm. And we would love your feedback. If you go to slightlycaffeinated.fm, there is a form where you can send us some feedback.

Chris Gmyr (52:59)
Yeah, let's wrap up.

TJ (53:20)
I would love to hear from you, topic ideas, criticisms, whatever. I'd love to just love to hear from anyone listening. That would be great. So yeah, thank you all for listening and we'll catch you next week.

Chris Gmyr (53:25)
Let's hear it.

Creators and Guests

Chris Gmyr
Host
Chris Gmyr
Husband, dad, & grilling aficionado. Loves Laravel & coffee. Staff Engineer @ Rula | TrianglePHP Co-Organizer
TJ Miller
Host
TJ Miller
Dreamer ⋅ ADHD advocate ⋅ Laravel astronaut ⋅ Building Prism ⋅ Principal at Geocodio ⋅ Thoughts are mine!
Gas Station Coffee, Code Disconnection, and Hooks
Broadcast by