WEBVTT

00:00:01.680 --> 00:00:03.600
Yeah, I'm just making a conscious

00:00:03.600 --> 00:00:06.879
decision with this podcast to try speak

00:00:06.879 --> 00:00:09.679
a bit slower because I've noticed when I

00:00:09.679 --> 00:00:11.280
was trying to make a short of us

00:00:11.280 --> 00:00:13.759
talking, we we talk over each other

00:00:13.759 --> 00:00:19.279
almost every every moment. So, um I

00:00:19.279 --> 00:00:21.279
think I think it's cuz we're I think

00:00:21.279 --> 00:00:23.680
it's cuz we're vibing in all honesty,

00:00:23.680 --> 00:00:25.519
but like when you're editing it, it's

00:00:25.519 --> 00:00:29.920
like, "Oh no, he got cut off.

00:00:29.920 --> 00:00:32.640
he didn't make his point clearly and

00:00:32.640 --> 00:00:35.200
such and so forth. So, I'm just like, I

00:00:35.200 --> 00:00:39.200
got to speak clearer and not cut Vincent

00:00:39.200 --> 00:00:43.520
off so I can get that sweet

00:00:43.520 --> 00:00:46.239
sound bite.

00:00:46.239 --> 00:00:48.320
Yeah,

00:00:48.320 --> 00:00:52.399
>> we complet

00:00:52.399 --> 00:00:54.800
Oh, wow. It took a while.

00:00:54.800 --> 00:00:55.360
Okay,

00:00:55.360 --> 00:00:57.280
>> maybe maybe it's not worth the effort to

00:00:57.280 --> 00:00:58.399
be honest. So, we just keep on doing

00:00:58.399 --> 00:00:59.680
what we're doing. I mean, like it's

00:00:59.680 --> 00:01:02.320
we're having fun really, I suppose.

00:01:02.320 --> 00:01:05.439
Okay, let me let me share the screen so

00:01:05.439 --> 00:01:08.240
I can demonstrate what I mean. Okay,

00:01:08.240 --> 00:01:13.119
first little question for you is

00:01:13.119 --> 00:01:16.720
I know you you're you're a proponent of

00:01:16.720 --> 00:01:18.400
uh specit because you're behind it, but

00:01:18.400 --> 00:01:20.720
like is is there a quicker way to share

00:01:20.720 --> 00:01:23.119
your your prompt with your team other

00:01:23.119 --> 00:01:24.960
than using something like claude code

00:01:24.960 --> 00:01:27.119
transcripts? Is there some other like

00:01:27.119 --> 00:01:30.080
lightweight way of doing it? Do you just

00:01:30.080 --> 00:01:34.799
throw uh some history into uh a gist or

00:01:34.799 --> 00:01:37.680
something? Cuz I'm because I'm I'm I'm

00:01:37.680 --> 00:01:41.200
now between Claude and Codex

00:01:41.200 --> 00:01:42.720
and this tool doesn't seem to work for

00:01:42.720 --> 00:01:46.799
Codex. So great.

00:01:46.799 --> 00:01:50.960
Oh. Um yeah, I was just about to sense

00:01:50.960 --> 00:01:56.560
or share something about

00:01:56.560 --> 00:01:59.439
And uh it's like sddddd align. No, no,

00:01:59.439 --> 00:02:03.040
no, no. There was this other project

00:02:03.040 --> 00:02:05.840
agent diff session capture. Oh, that's

00:02:05.840 --> 00:02:07.520
an interesting one. But I don't know if

00:02:07.520 --> 00:02:09.440
it supports others than cloud.

00:02:09.440 --> 00:02:09.920
>> Okay.

00:02:09.920 --> 00:02:12.480
>> It's a CLI tool that hooks into cloud.

00:02:12.480 --> 00:02:14.400
>> Then there's co-pilot. Yeah. I I just

00:02:14.400 --> 00:02:16.800
feel I I don't know if it's even worth

00:02:16.800 --> 00:02:19.280
doing this on in sometimes cuz like

00:02:19.280 --> 00:02:21.040
because sometimes like when people share

00:02:21.040 --> 00:02:23.920
things to me the session is just too

00:02:23.920 --> 00:02:26.239
>> Yeah. So I think we need to identify and

00:02:26.239 --> 00:02:27.520
here we were talking over each other and

00:02:27.520 --> 00:02:29.280
then I interrupted you but I think what

00:02:29.280 --> 00:02:31.280
we need to do is we need to identify why

00:02:31.280 --> 00:02:33.280
do we want to share sessions? what is it

00:02:33.280 --> 00:02:35.120
that we want to get out of it, right?

00:02:35.120 --> 00:02:38.239
And we could share

00:02:38.239 --> 00:02:40.239
>> the full session log with all the

00:02:40.239 --> 00:02:44.080
mishaps or we could find some type of

00:02:44.080 --> 00:02:48.000
flow that allows us to capture

00:02:48.000 --> 00:02:50.080
important key decisions and information

00:02:50.080 --> 00:02:52.080
that we want to share to

00:02:52.080 --> 00:02:53.840
>> accompany the code changes that we are

00:02:53.840 --> 00:02:55.840
proposing. Right.

00:02:55.840 --> 00:02:58.319
>> Yeah. Yeah. like these important

00:02:58.319 --> 00:03:00.480
decisions need to be captured and marked

00:03:00.480 --> 00:03:03.360
up as much and and I don't know of any

00:03:03.360 --> 00:03:06.319
tool that does it like yeah like these

00:03:06.319 --> 00:03:08.239
sessions are hard to follow and if you

00:03:08.239 --> 00:03:09.280
could if you could sort of like

00:03:09.280 --> 00:03:13.599
highlight like I don't know the the bit

00:03:13.599 --> 00:03:17.200
where something happened which which

00:03:17.200 --> 00:03:21.120
plays into a certain

00:03:21.120 --> 00:03:22.720
uh

00:03:22.720 --> 00:03:25.280
AI usage pattern that you want to get

00:03:25.280 --> 00:03:27.440
across to your team or something then

00:03:27.440 --> 00:03:29.920
that would be great but I just maybe I

00:03:29.920 --> 00:03:32.560
need to build the damn tool that I want.

00:03:32.560 --> 00:03:34.000
>> Sounds like it because what you're

00:03:34.000 --> 00:03:35.760
saying is a very different use case from

00:03:35.760 --> 00:03:39.280
what I think about um session sharing to

00:03:39.280 --> 00:03:41.280
me. It sounds like you are and I think

00:03:41.280 --> 00:03:43.519
this is something that I also do. you

00:03:43.519 --> 00:03:45.599
are trying to show to your team members

00:03:45.599 --> 00:03:47.280
if you're faced with this type of issue

00:03:47.280 --> 00:03:50.000
or hey did you know that you can prompt

00:03:50.000 --> 00:03:52.640
the model to think deeper in this way or

00:03:52.640 --> 00:03:55.599
to identify other edge cases in that way

00:03:55.599 --> 00:03:56.879
is that what you're trying to do right

00:03:56.879 --> 00:03:58.239
you're trying to share

00:03:58.239 --> 00:03:59.920
>> yeah I'm trying to share like it's not

00:03:59.920 --> 00:04:01.599
just about me it's like I would like to

00:04:01.599 --> 00:04:03.280
see what other people think

00:04:03.280 --> 00:04:05.360
>> okay this this leads me nicely onto what

00:04:05.360 --> 00:04:08.319
I really want to get at actually I came

00:04:08.319 --> 00:04:11.920
across a brilliant um

00:04:11.920 --> 00:04:17.040
like web page where they essentially try

00:04:17.040 --> 00:04:19.280
to plot all the things that we've talked

00:04:19.280 --> 00:04:20.799
about

00:04:20.799 --> 00:04:23.120
from time to time

00:04:23.120 --> 00:04:26.479
about about uh you know obstacles as

00:04:26.479 --> 00:04:29.440
they call it challenges to using AI um

00:04:29.440 --> 00:04:31.440
antiatterns things that you shouldn't

00:04:31.440 --> 00:04:34.240
maybe do patterns which which which

00:04:34.240 --> 00:04:36.160
might help

00:04:36.160 --> 00:04:38.000
and this is a this is the best

00:04:38.000 --> 00:04:40.960
collection I've seen

00:04:40.960 --> 00:04:43.680
and for this the purpose of this podcast

00:04:43.680 --> 00:04:46.160
today. I thought it would be cool if we

00:04:46.160 --> 00:04:49.280
just quickly go through them if if we

00:04:49.280 --> 00:04:51.680
agree on these things or not or maybe

00:04:51.680 --> 00:04:54.400
what they missed or something like that.

00:04:54.400 --> 00:04:55.440
>> I know there's a lot there.

00:04:55.440 --> 00:04:57.680
>> I'm curious to hear from you which one

00:04:57.680 --> 00:05:00.000
of like you're showing a diagram and I

00:05:00.000 --> 00:05:02.880
don't know where to start and did you

00:05:02.880 --> 00:05:04.320
>> read it and is there anything that

00:05:04.320 --> 00:05:06.160
stands out that you say this really?

00:05:06.160 --> 00:05:08.880
Well, there's there's a few I I dipped

00:05:08.880 --> 00:05:11.120
in here and there and everywhere cuz as

00:05:11.120 --> 00:05:13.600
you as I mentioned the last podcast, I'm

00:05:13.600 --> 00:05:16.639
I am essentially taking

00:05:16.639 --> 00:05:18.639
uh

00:05:18.639 --> 00:05:21.520
some platform documentation and we're

00:05:21.520 --> 00:05:25.280
working on how to make it AI friendly

00:05:25.280 --> 00:05:28.800
and uh so I'm keen to to meet all the

00:05:28.800 --> 00:05:32.560
patterns uh around

00:05:32.560 --> 00:05:36.320
making the knowledge accessible to to

00:05:36.320 --> 00:05:39.199
AI. So like like when I dipped into this

00:05:39.199 --> 00:05:40.960
knowledge composition here, it was like

00:05:40.960 --> 00:05:42.639
saying,

00:05:42.639 --> 00:05:44.320
you know,

00:05:44.320 --> 00:05:46.000
don't when you keep everything in a big

00:05:46.000 --> 00:05:47.840
file, it might not work out or something

00:05:47.840 --> 00:05:50.960
like that. So it it's recommending uh oh

00:05:50.960 --> 00:05:52.639
my gosh, what's what is that? It's

00:05:52.639 --> 00:05:56.800
called uh what is that skill? Uh it's in

00:05:56.800 --> 00:06:00.000
the claw documentation like gradual.

00:06:00.000 --> 00:06:04.560
>> Yeah. Yeah. Um what's the name?

00:06:04.560 --> 00:06:06.800
progressive discovery or something.

00:06:06.800 --> 00:06:08.560
>> Progressive disclosure. Yeah,

00:06:08.560 --> 00:06:09.600
>> disclosure.

00:06:09.600 --> 00:06:10.720
>> So essentially they're saying

00:06:10.720 --> 00:06:12.479
progressive disclosure here. So instead

00:06:12.479 --> 00:06:14.960
of having like one huge best practices

00:06:14.960 --> 00:06:17.600
which is actually the case with my

00:06:17.600 --> 00:06:19.840
current client like we just have huge on

00:06:19.840 --> 00:06:23.360
boarding guides and uh of course they

00:06:23.360 --> 00:06:24.880
recommended you know breaking it down

00:06:24.880 --> 00:06:28.080
with architecture tech stack deployment

00:06:28.080 --> 00:06:30.080
API docs

00:06:30.080 --> 00:06:32.880
>> and this is simple stuff. This is

00:06:32.880 --> 00:06:34.400
something that I've noticed as well in

00:06:34.400 --> 00:06:36.639
the skills that so basically as you

00:06:36.639 --> 00:06:39.759
alluded earlier um spec ledger is is a

00:06:39.759 --> 00:06:41.919
is a framework around specri development

00:06:41.919 --> 00:06:43.840
for team collaboration for sharing

00:06:43.840 --> 00:06:48.240
information and we also have implemented

00:06:48.240 --> 00:06:52.080
the idea of capturing the messages from

00:06:52.080 --> 00:06:56.400
the user that and the model that led or

00:06:56.400 --> 00:06:59.039
the agentic um shell that led to a

00:06:59.039 --> 00:07:01.759
commit. So we're using um a hook

00:07:01.759 --> 00:07:04.960
whenever a get commit happens to

00:07:04.960 --> 00:07:08.319
basically capture the delta of messages.

00:07:08.319 --> 00:07:11.039
Then we tag those messages by the commit

00:07:11.039 --> 00:07:13.680
ID. So every commit ID should have and

00:07:13.680 --> 00:07:15.039
then you should be able to identify

00:07:15.039 --> 00:07:16.880
messages related to a specification and

00:07:16.880 --> 00:07:17.680
a specific commit.

00:07:17.680 --> 00:07:18.880
>> So you're trying you're trying to roll

00:07:18.880 --> 00:07:20.560
up the the prompt that went into the

00:07:20.560 --> 00:07:22.479
commit basically.

00:07:22.479 --> 00:07:24.720
>> Yeah, but it's too detailed, right? So

00:07:24.720 --> 00:07:26.880
then we have a separate GitHub issue

00:07:26.880 --> 00:07:30.240
that was um referring to an MCP to

00:07:30.240 --> 00:07:34.319
basically convert session data into

00:07:34.319 --> 00:07:37.919
knowledge into a knowledge base. And

00:07:37.919 --> 00:07:39.599
when I looked at it, it was like it was

00:07:39.599 --> 00:07:41.759
a bit silly because we're not storing

00:07:41.759 --> 00:07:45.039
sessions as blobs uh you know inside a

00:07:45.039 --> 00:07:47.680
datab inside a an object storage. We're

00:07:47.680 --> 00:07:50.479
actually already analyzing messages by

00:07:50.479 --> 00:07:53.360
commit. So it did highlight a couple of

00:07:53.360 --> 00:07:55.280
features that we could add onto spec

00:07:55.280 --> 00:07:57.919
ledger which is the ability to prune and

00:07:57.919 --> 00:08:00.400
and merge and actually derive

00:08:00.400 --> 00:08:03.120
knowledgebased articles um global

00:08:03.120 --> 00:08:05.280
knowledgebased articles to out of

00:08:05.280 --> 00:08:06.400
session data

00:08:06.400 --> 00:08:08.960
>> and and that's one of the um you know

00:08:08.960 --> 00:08:11.599
GitHub issues and and and and area like

00:08:11.599 --> 00:08:14.160
areas of work that we want to explore.

00:08:14.160 --> 00:08:16.160
So we haven't implemented that yet. But

00:08:16.160 --> 00:08:17.759
then when it comes down to what you just

00:08:17.759 --> 00:08:20.800
highlighted, the problem where we we

00:08:20.800 --> 00:08:22.560
have specled ledger CLI and we have a

00:08:22.560 --> 00:08:25.280
bunch of commands. So the spec kit, it's

00:08:25.280 --> 00:08:28.240
built out of bash scripts and Python CLI

00:08:28.240 --> 00:08:30.479
and some other stuff and then the agent

00:08:30.479 --> 00:08:32.800
is instructed to run a a bash script and

00:08:32.800 --> 00:08:34.080
then the bash script needs to be a

00:08:34.080 --> 00:08:36.159
PowerShell for Windows. So it's very

00:08:36.159 --> 00:08:38.080
messy, right? So with Spec Ledger, we

00:08:38.080 --> 00:08:40.080
have one CLI. We've got written of

00:08:40.080 --> 00:08:42.320
beats. Everything is is rolled into one

00:08:42.320 --> 00:08:44.159
CLI and then we have a bunch of skills

00:08:44.159 --> 00:08:46.160
for that CLI. like this is how you

00:08:46.160 --> 00:08:48.880
create tasks, this is how you um you

00:08:48.880 --> 00:08:50.800
know review comments, this is how you

00:08:50.800 --> 00:08:52.480
put comments.

00:08:52.480 --> 00:08:53.040
>> Yeah.

00:08:53.040 --> 00:08:54.959
>> Yeah. So we wrote a bunch of skills and

00:08:54.959 --> 00:08:57.920
when you init your repo we we inject we

00:08:57.920 --> 00:09:00.000
we write on down those skills embedded

00:09:00.000 --> 00:09:02.160
into the Golang binary down to your disk

00:09:02.160 --> 00:09:04.000
so that they can be progressively

00:09:04.000 --> 00:09:06.880
discovered or disclosed by by the agent

00:09:06.880 --> 00:09:08.080
fell to the model.

00:09:08.080 --> 00:09:10.720
>> And I actually noticed that those scales

00:09:10.720 --> 00:09:12.240
are too big like exactly what you

00:09:12.240 --> 00:09:14.080
highlighted. So today I just created an

00:09:14.080 --> 00:09:16.240
issue which is like um I used the

00:09:16.240 --> 00:09:18.160
entropic skill creator and they have now

00:09:18.160 --> 00:09:19.920
the whole evaluation framework in there

00:09:19.920 --> 00:09:22.399
as well. Um and I I basically pulled it

00:09:22.399 --> 00:09:24.080
into the repository and I did a full

00:09:24.080 --> 00:09:26.240
analysis on all all of our skills and

00:09:26.240 --> 00:09:28.160
basically what do we need to do to make

00:09:28.160 --> 00:09:30.000
these skills more aligned with the way

00:09:30.000 --> 00:09:32.080
that the agent shall or Claude Code will

00:09:32.080 --> 00:09:35.120
progressively um disclose this

00:09:35.120 --> 00:09:36.800
information to the agent.

00:09:36.800 --> 00:09:39.360
>> How did you notice that? This is where I

00:09:39.360 --> 00:09:42.399
feel we get into, you know, touchyfey

00:09:42.399 --> 00:09:45.360
spider sense territory. How did you know

00:09:45.360 --> 00:09:47.360
that your skills were too big? Just

00:09:47.360 --> 00:09:49.600
because they they didn't seem to be

00:09:49.600 --> 00:09:53.519
working or actually so we did a huge

00:09:53.519 --> 00:09:55.680
streamlining effort of of like getting

00:09:55.680 --> 00:09:58.240
rid of the bash scripts and and and

00:09:58.240 --> 00:09:59.920
converting into subcomands into the

00:09:59.920 --> 00:10:01.360
Golang binary. So you have only one

00:10:01.360 --> 00:10:02.640
binary need

00:10:02.640 --> 00:10:04.800
>> and in that effort we also realigned all

00:10:04.800 --> 00:10:07.120
the scales. We defined a four layer

00:10:07.120 --> 00:10:10.160
framework um of each layer's

00:10:10.160 --> 00:10:12.800
responsibility of like this this belongs

00:10:12.800 --> 00:10:17.040
to um shell hooks. This responsibility

00:10:17.040 --> 00:10:19.519
belongs to skills. This responsibility

00:10:19.519 --> 00:10:22.399
belongs to the CLI output also took an

00:10:22.399 --> 00:10:24.240
efficient output. All this is is defined

00:10:24.240 --> 00:10:26.320
in like one uh feature spec and we

00:10:26.320 --> 00:10:28.079
actually created a bunch of rules around

00:10:28.079 --> 00:10:30.560
that and then we realigned it. So, so

00:10:30.560 --> 00:10:32.720
only today I finally had time to

00:10:32.720 --> 00:10:34.240
actually download the binary with all

00:10:34.240 --> 00:10:36.320
the latest streamlining and it actually

00:10:36.320 --> 00:10:38.560
works really well. Like um I was working

00:10:38.560 --> 00:10:41.040
I picked up a task and I was like let's

00:10:41.040 --> 00:10:42.720
implement it with the latest CLI and it

00:10:42.720 --> 00:10:43.920
was working well. So I didn't have an

00:10:43.920 --> 00:10:46.399
issue with the skills at the moment but

00:10:46.399 --> 00:10:49.760
I noticed that maybe there there can be

00:10:49.760 --> 00:10:51.360
an improvement. So it wasn't really

00:10:51.360 --> 00:10:55.040
driven by like data. It was just that um

00:10:55.040 --> 00:10:57.120
>> No, I think I think I think Vibes and

00:10:57.120 --> 00:11:01.040
Spider Senses does is something uh just

00:11:01.040 --> 00:11:04.079
that it it's a bit weird.

00:11:04.079 --> 00:11:06.959
>> It actually worked really well. But um

00:11:06.959 --> 00:11:10.320
but the thing is I I also wrote a Jira

00:11:10.320 --> 00:11:13.600
skill, right? A Jira CLI and

00:11:13.600 --> 00:11:15.279
>> I noticed that it was really messy and

00:11:15.279 --> 00:11:16.880
it didn't really work well and I did the

00:11:16.880 --> 00:11:18.800
same thing there. So, so it's it's more

00:11:18.800 --> 00:11:19.680
like I I I

00:11:19.680 --> 00:11:22.880
>> was your Jurro CLI like actual code or

00:11:22.880 --> 00:11:24.000
is it like a skill?

00:11:24.000 --> 00:11:26.720
>> No, Mark. Well, well, so basically I use

00:11:26.720 --> 00:11:29.440
I I forked the the Golang CLI. That's

00:11:29.440 --> 00:11:31.360
the most popular one apparently. Uh it

00:11:31.360 --> 00:11:33.360
has a lot of open PR. So I forked it and

00:11:33.360 --> 00:11:35.680
merged some of those open PRs and to

00:11:35.680 --> 00:11:37.360
make it act more like the GitHub CLI

00:11:37.360 --> 00:11:39.040
because the GitHub CLI works really well

00:11:39.040 --> 00:11:41.279
with uh with with Claude Code

00:11:41.279 --> 00:11:43.279
>> and um for example, you have an escape

00:11:43.279 --> 00:11:46.000
hatch. can you can put API and then it

00:11:46.000 --> 00:11:48.000
can do REST API calls.

00:11:48.000 --> 00:11:49.839
>> And um I'm not sure if I mentioned this

00:11:49.839 --> 00:11:52.240
to you the last time, but what I noticed

00:11:52.240 --> 00:11:53.760
was

00:11:53.760 --> 00:11:57.680
I had I was using the the Jira CLI and

00:11:57.680 --> 00:12:01.519
according to the Atlassian docs when you

00:12:01.519 --> 00:12:04.079
want to move in my case I had to move a

00:12:04.079 --> 00:12:07.120
card from the backlog to a board. So if

00:12:07.120 --> 00:12:08.480
you go to backlog you can right click

00:12:08.480 --> 00:12:11.440
and you say move to board, right? Uh

00:12:11.440 --> 00:12:13.200
maybe this is going into an anecdote,

00:12:13.200 --> 00:12:17.040
right? But um but basically I I was like

00:12:17.040 --> 00:12:20.720
showing um claude I said like hey I need

00:12:20.720 --> 00:12:23.120
to move this ticket to the to the board.

00:12:23.120 --> 00:12:24.560
It's an when I create ticket it goes

00:12:24.560 --> 00:12:26.560
into the backlog and when then I want to

00:12:26.560 --> 00:12:30.160
assign it to the board and and and then

00:12:30.160 --> 00:12:31.440
cloud was like yeah according to the

00:12:31.440 --> 00:12:33.200
Atlassian docs it should be this

00:12:33.200 --> 00:12:35.360
endpoint uh and it it does this endpoint

00:12:35.360 --> 00:12:36.800
and then it will move the card to the

00:12:36.800 --> 00:12:39.200
board and it wrote this down in the

00:12:39.200 --> 00:12:41.760
scale and then I was like okay great uh

00:12:41.760 --> 00:12:43.600
but I already moved it so let's do it

00:12:43.600 --> 00:12:45.200
later and then it created another ticket

00:12:45.200 --> 00:12:46.800
and uh and then I was like okay move it

00:12:46.800 --> 00:12:49.040
to the port and it failed it got a two

00:12:49.040 --> 00:12:50.399
or four response empty response

00:12:50.399 --> 00:12:52.079
>> I was going to I was going to say as

00:12:52.079 --> 00:12:54.399
much I was going to say that I feel I

00:12:54.399 --> 00:12:56.160
feel like it's a trap when you think

00:12:56.160 --> 00:13:00.160
that the skill is going to be your CLI.

00:13:00.160 --> 00:13:02.800
It's uh it's never going to end well

00:13:02.800 --> 00:13:05.120
>> because deterministic, right?

00:13:05.120 --> 00:13:07.279
>> Yeah, absolutely. But the thing was um

00:13:07.279 --> 00:13:11.120
the thing was when I asked

00:13:11.120 --> 00:13:13.600
cloud to move to ticket, it didn't work.

00:13:13.600 --> 00:13:15.680
And and and really cool what happened

00:13:15.680 --> 00:13:19.120
was that I asked Cloud, can you see my

00:13:19.120 --> 00:13:21.760
Chrome? And it it launched Chrome MCP

00:13:21.760 --> 00:13:24.399
like DevTools controlled and it told me

00:13:24.399 --> 00:13:27.680
that it enabled the hook. Um it it sorry

00:13:27.680 --> 00:13:30.720
it enabled a spy in the in the Chrome

00:13:30.720 --> 00:13:33.839
session uh managed by cloud and it asked

00:13:33.839 --> 00:13:35.360
me to move the ticket

00:13:35.360 --> 00:13:37.760
>> and I said okay I click on the button

00:13:37.760 --> 00:13:41.279
and and then I said I've done it and it

00:13:41.279 --> 00:13:42.720
says now let me look at the lock from

00:13:42.720 --> 00:13:44.959
the hook and it says I can see that it's

00:13:44.959 --> 00:13:48.160
using uh green light API and not I'm

00:13:48.160 --> 00:13:49.360
just making up the name or something

00:13:49.360 --> 00:13:51.839
greenhouse or green light API

00:13:51.839 --> 00:13:53.680
>> and it's not using the rest API when

00:13:53.680 --> 00:13:55.519
it's moved to move the ticket

00:13:55.519 --> 00:13:57.440
>> and and and so it it updated the skill

00:13:57.440 --> 00:14:00.000
saying um don't use the documented rest

00:14:00.000 --> 00:14:03.600
API the actual conference Jira API like

00:14:03.600 --> 00:14:05.920
the web application is using this API

00:14:05.920 --> 00:14:08.480
and and and now it works like what the

00:14:08.480 --> 00:14:08.880
hell

00:14:08.880 --> 00:14:10.560
>> well I mean that that sounds like a

00:14:10.560 --> 00:14:14.320
rabbit hole to me the the on the topic

00:14:14.320 --> 00:14:15.120
of Alassian

00:14:15.120 --> 00:14:16.399
>> what do you mean rabbit hole

00:14:16.399 --> 00:14:19.839
>> I mean like because you're you're in

00:14:19.839 --> 00:14:23.600
like skill land as opposed to something

00:14:23.600 --> 00:14:25.760
deterministic with the CLI No, no, no.

00:14:25.760 --> 00:14:28.160
Absolutely not. You missed the point.

00:14:28.160 --> 00:14:29.600
>> The point was

00:14:29.600 --> 00:14:32.720
>> that the Atlassian REST API told you to

00:14:32.720 --> 00:14:36.000
to do a certain API post request.

00:14:36.000 --> 00:14:36.480
>> Yeah.

00:14:36.480 --> 00:14:38.399
>> And that it would move the cart, but

00:14:38.399 --> 00:14:39.839
that it didn't work.

00:14:39.839 --> 00:14:42.000
>> That the web app works

00:14:42.000 --> 00:14:44.639
>> and that cloud was able to hook into the

00:14:44.639 --> 00:14:45.920
Chrome session,

00:14:45.920 --> 00:14:48.880
>> enable the spy when I click the button,

00:14:48.880 --> 00:14:51.519
identify the actual endpoint, and then I

00:14:51.519 --> 00:14:53.040
don't care that it goes into the skill,

00:14:53.040 --> 00:14:54.880
right? The point is

00:14:54.880 --> 00:14:57.600
>> it's insane. Like at that at that point

00:14:57.600 --> 00:15:00.880
I I could go like okay my Golang U CLI

00:15:00.880 --> 00:15:02.240
deterministically should always call

00:15:02.240 --> 00:15:02.639
that agent

00:15:02.639 --> 00:15:05.040
>> but to complete this flywheel to get

00:15:05.040 --> 00:15:07.519
back to determinism.

00:15:07.519 --> 00:15:09.600
you you we we you should have spun up an

00:15:09.600 --> 00:15:13.279
agent, reported the bug, splabbed on the

00:15:13.279 --> 00:15:17.120
issue to say that uh the the this uh

00:15:17.120 --> 00:15:19.440
this post didn't work as intended to

00:15:19.440 --> 00:15:21.279
move the card from this column to this

00:15:21.279 --> 00:15:24.160
column and this code

00:15:24.160 --> 00:15:26.480
>> the the the people the upstream of this

00:15:26.480 --> 00:15:28.639
Jurro CLI that you're using using

00:15:28.639 --> 00:15:30.240
>> it's

00:15:30.240 --> 00:15:32.959
so there's no Oh, I thought you were

00:15:32.959 --> 00:15:35.199
using some go code around

00:15:35.199 --> 00:15:37.360
>> I am using a go code but the go code

00:15:37.360 --> 00:15:38.720
doesn't have the command to move the

00:15:38.720 --> 00:15:40.880
board the cart. So I use the pull

00:15:40.880 --> 00:15:41.360
request

00:15:41.360 --> 00:15:43.839
>> contribute back for instant.

00:15:43.839 --> 00:15:45.680
>> Yes, there is already a pull request

00:15:45.680 --> 00:15:48.000
that wasn't merged almost a year ago

00:15:48.000 --> 00:15:51.839
which exposes a backd dooror to to

00:15:51.839 --> 00:15:53.680
actually do an API. So you have the Jira

00:15:53.680 --> 00:15:57.040
CLI you can do Jira uh new ticket and it

00:15:57.040 --> 00:15:58.639
will create a new ticket and all that.

00:15:58.639 --> 00:16:01.199
Those are all there but there's a couple

00:16:01.199 --> 00:16:03.360
of things missing and in that case you

00:16:03.360 --> 00:16:05.839
know the GitHub CLI you can do GitHub

00:16:05.839 --> 00:16:08.480
space API and then you path put the API

00:16:08.480 --> 00:16:10.959
path and then you can actually use your

00:16:10.959 --> 00:16:13.519
GitHub CLI authentication to call the

00:16:13.519 --> 00:16:16.480
API endpoint right it's like know about

00:16:16.480 --> 00:16:17.759
that okay all right

00:16:17.759 --> 00:16:19.759
>> yeah so it's like a it's like a escape

00:16:19.759 --> 00:16:21.920
hatch so if if the CLI doesn't have the

00:16:21.920 --> 00:16:24.320
content so that already existed there is

00:16:24.320 --> 00:16:26.560
already an um a pull request to

00:16:26.560 --> 00:16:29.279
contribute the API subcomand So that you

00:16:29.279 --> 00:16:31.040
can directly hit end points.

00:16:31.040 --> 00:16:33.360
>> I see. Okay. Oh, this is pretty nuanced

00:16:33.360 --> 00:16:36.160
then. So you using that to keep the

00:16:36.160 --> 00:16:37.440
creds and

00:16:37.440 --> 00:16:40.000
>> yeah so my skill says until we have a

00:16:40.000 --> 00:16:42.399
subcomand to move tickets you can use

00:16:42.399 --> 00:16:44.399
the escape hatch which is through the

00:16:44.399 --> 00:16:46.240
API and originally according to

00:16:46.240 --> 00:16:47.680
Atlastian docs you should use this

00:16:47.680 --> 00:16:49.279
endpoint but that didn't work so we

00:16:49.279 --> 00:16:50.720
removed that. And in the scale it says

00:16:50.720 --> 00:16:53.680
use this green light or whatever it is.

00:16:53.680 --> 00:16:56.399
>> This yeah this escape

00:16:56.399 --> 00:16:59.600
>> hatch. It's quite an interesting

00:16:59.600 --> 00:17:00.240
concept

00:17:00.240 --> 00:17:02.320
>> feel design. Yes. You don't need

00:17:02.320 --> 00:17:04.160
>> I still think it's

00:17:04.160 --> 00:17:07.120
>> Yeah. Like after working with Atlassian

00:17:07.120 --> 00:17:08.959
products. Yeah. This this thing that I'm

00:17:08.959 --> 00:17:11.439
sharing with you right now I'm I'm I'm

00:17:11.439 --> 00:17:13.039
like

00:17:13.039 --> 00:17:14.640
uh

00:17:14.640 --> 00:17:15.439
so there's two ways

00:17:15.439 --> 00:17:16.959
>> this is this for confluence?

00:17:16.959 --> 00:17:18.480
>> Yeah, there's two ways to obviously work

00:17:18.480 --> 00:17:20.880
with confluence. You can you can work

00:17:20.880 --> 00:17:25.039
with the curl API. you can work with an

00:17:25.039 --> 00:17:26.720
okay there's three way these there's a

00:17:26.720 --> 00:17:29.039
bunch of ways there's the MCP way which

00:17:29.039 --> 00:17:32.080
is basically doing curl commands and

00:17:32.080 --> 00:17:34.960
there's um and then and then there's

00:17:34.960 --> 00:17:37.360
this way using a tool called mark which

00:17:37.360 --> 00:17:39.679
has got the highest rated I should star

00:17:39.679 --> 00:17:44.400
it the highest rated uh tool to to push

00:17:44.400 --> 00:17:46.640
to to confluence

00:17:46.640 --> 00:17:48.480
and

00:17:48.480 --> 00:17:51.200
it the the thing that I wanted to say is

00:17:51.200 --> 00:17:53.760
that with Atlassian products They're

00:17:53.760 --> 00:17:55.760
actually amazingly complicated to work

00:17:55.760 --> 00:17:59.360
with. The whole active markdown to HTML,

00:17:59.360 --> 00:18:03.200
all these crazy um macro templates they

00:18:03.200 --> 00:18:05.280
have for like everything from like

00:18:05.280 --> 00:18:09.200
little notes to I don't know table

00:18:09.200 --> 00:18:13.360
layouts to database to to to Jira ticket

00:18:13.360 --> 00:18:14.799
layouts. There's a lot going on

00:18:14.799 --> 00:18:18.240
actually. So, so

00:18:18.240 --> 00:18:20.559
this tool is actually really good and it

00:18:20.559 --> 00:18:22.160
does have its problems and there's some

00:18:22.160 --> 00:18:24.400
open pull requests, but like if you're

00:18:24.400 --> 00:18:26.720
working with confluence from AI, you

00:18:26.720 --> 00:18:28.160
should be using a tool like this.

00:18:28.160 --> 00:18:30.799
Otherwise, I feel you'll be catching

00:18:30.799 --> 00:18:33.039
some edge cases sooner or later and

00:18:33.039 --> 00:18:35.600
you'll be scratching your head and this

00:18:35.600 --> 00:18:38.720
is the deterministic tool to get you

00:18:38.720 --> 00:18:41.200
somewhat there.

00:18:41.200 --> 00:18:44.480
Okay, that said, let's just sp let's

00:18:44.480 --> 00:18:48.000
just let's just spend like a lightning

00:18:48.000 --> 00:18:49.760
one minute on each thing just to say

00:18:49.760 --> 00:18:53.039
whether it's whether it's whether we

00:18:53.039 --> 00:18:55.840
think it's correct or

00:18:55.840 --> 00:19:00.080
or or it sucks. How about that, Vincent?

00:19:00.080 --> 00:19:01.600
>> Yeah.

00:19:01.600 --> 00:19:04.160
>> Well, I don't even know where to start.

00:19:04.160 --> 00:19:07.200
Okay, let I'll start at the top left. Do

00:19:07.200 --> 00:19:09.840
you think uh yeah I think context raw is

00:19:09.840 --> 00:19:12.480
still a thing even though I noticed that

00:19:12.480 --> 00:19:17.679
Codex is definitely better at it.

00:19:17.679 --> 00:19:21.280
>> Uh I think context rock is still a

00:19:21.280 --> 00:19:24.400
massive problem. Yeah. And it should be

00:19:24.400 --> 00:19:27.280
>> I don't know about codecs but um even

00:19:27.280 --> 00:19:30.640
with Opus 1 million context window um

00:19:30.640 --> 00:19:35.679
it's very difficult to I noticed that

00:19:35.679 --> 00:19:40.240
LLM agents do not keep track of um

00:19:40.240 --> 00:19:42.640
details very well. I don't know if this

00:19:42.640 --> 00:19:44.720
is a regression or we're just used to

00:19:44.720 --> 00:19:46.320
them doing a lot more than before and

00:19:46.320 --> 00:19:48.880
now we just expect the world.

00:19:48.880 --> 00:19:50.640
>> So most people are feeling it's

00:19:50.640 --> 00:19:51.760
regression but I don't think it's

00:19:51.760 --> 00:19:54.000
regression. I think it's just we getting

00:19:54.000 --> 00:19:54.559
used to

00:19:54.559 --> 00:19:56.320
>> yeah the the expectations are always

00:19:56.320 --> 00:20:01.280
growing. So context management um treat

00:20:01.280 --> 00:20:04.080
context as a scarce degrading okay I

00:20:04.080 --> 00:20:06.559
think this is

00:20:06.559 --> 00:20:09.440
like do you have an approach to context

00:20:09.440 --> 00:20:14.000
management like to be honest I you know

00:20:14.000 --> 00:20:16.000
I do click compact conversation

00:20:16.000 --> 00:20:17.919
regrettably from time to time when I

00:20:17.919 --> 00:20:20.320
have a bit of downtime.

00:20:20.320 --> 00:20:24.400
So for me, since I'm now using the my

00:20:24.400 --> 00:20:30.400
plan with Opus 1 million token access, I

00:20:30.400 --> 00:20:31.919
honestly

00:20:31.919 --> 00:20:34.400
I have the status bar tell me how much

00:20:34.400 --> 00:20:36.559
percent is used. I also like that after

00:20:36.559 --> 00:20:38.080
the plan, it always tells me how much

00:20:38.080 --> 00:20:40.240
percent was used by the plan and it

00:20:40.240 --> 00:20:41.919
offers me to clear and and then do the

00:20:41.919 --> 00:20:44.240
implementation. But I noticed with Opus

00:20:44.240 --> 00:20:48.000
1M, the usage is usually like 3% or 17%

00:20:48.000 --> 00:20:50.880
very low. So I'm like I'm not even

00:20:50.880 --> 00:20:52.880
clearing it anymore. I'm like, "Oh,

00:20:52.880 --> 00:20:56.159
looks good." But maybe that's also why

00:20:56.159 --> 00:21:00.159
sometimes details get lost. Um like even

00:21:00.159 --> 00:21:02.480
though it's a 1 million token context

00:21:02.480 --> 00:21:06.799
window opus LLM model um and it tells me

00:21:06.799 --> 00:21:09.840
that it's only using 10 or 15% of token

00:21:09.840 --> 00:21:12.880
window details are not being tracked. So

00:21:12.880 --> 00:21:15.760
sometimes I do go to like the basic opus

00:21:15.760 --> 00:21:18.400
and then I do aggressively clear. I do

00:21:18.400 --> 00:21:20.320
not uh I do not compact.

00:21:20.320 --> 00:21:22.159
>> It's quite a lot of work, isn't it, to

00:21:22.159 --> 00:21:25.039
to reset it in some ways. So,

00:21:25.039 --> 00:21:25.520
>> we get

00:21:25.520 --> 00:21:28.000
>> I mean I have my checkpoint uh so in

00:21:28.000 --> 00:21:30.480
spec we added the idea of checkpoints

00:21:30.480 --> 00:21:33.280
and and what they do is they basically

00:21:33.280 --> 00:21:35.039
that's a bit related to the question

00:21:35.039 --> 00:21:36.640
earlier about like how do we share

00:21:36.640 --> 00:21:38.240
sessions and what do we want to get out

00:21:38.240 --> 00:21:40.720
of sharing sessions. Um we actually

00:21:40.720 --> 00:21:44.880
started to move more towards either

00:21:44.880 --> 00:21:47.520
building knowledge base out of sessions

00:21:47.520 --> 00:21:50.559
or with a checkpoint command we asked

00:21:50.559 --> 00:21:52.720
the model specifically

00:21:52.720 --> 00:21:55.120
give us a detailed like progress update

00:21:55.120 --> 00:21:57.520
of the work that we've completed in this

00:21:57.520 --> 00:21:59.200
>> related back to the actual thing.

00:21:59.200 --> 00:22:00.480
>> Yeah. Summary.

00:22:00.480 --> 00:22:03.200
>> Yeah. related related specifically to

00:22:03.200 --> 00:22:04.720
like the work items that we're supposed

00:22:04.720 --> 00:22:06.320
to work on because there's so many other

00:22:06.320 --> 00:22:07.840
things about happening in between when I

00:22:07.840 --> 00:22:09.919
when I encounter a bug and I say go and

00:22:09.919 --> 00:22:12.000
create a bug I don't want really that to

00:22:12.000 --> 00:22:14.640
be to be collected or whatever

00:22:14.640 --> 00:22:16.720
>> that summary is pretty much what I like

00:22:16.720 --> 00:22:18.880
to do and what what actually confuses me

00:22:18.880 --> 00:22:21.120
is that the compact conversation like I

00:22:21.120 --> 00:22:23.840
don't even know what it's doing which

00:22:23.840 --> 00:22:25.840
makes me uncomfortable like is it

00:22:25.840 --> 00:22:28.400
summarizing where is the summary I don't

00:22:28.400 --> 00:22:30.320
know maybe that's me just not knowing

00:22:30.320 --> 00:22:32.960
showing how compact works.

00:22:32.960 --> 00:22:35.120
Okay, let's just move on. Knowledge

00:22:35.120 --> 00:22:37.520
document keep AI. I think we talked

00:22:37.520 --> 00:22:39.120
about this. It's just saying the same

00:22:39.120 --> 00:22:42.240
thing again and again uh about keeping

00:22:42.240 --> 00:22:43.840
things

00:22:43.840 --> 00:22:46.640
uh ground rules. This is like just say

00:22:46.640 --> 00:22:49.280
what your

00:22:49.280 --> 00:22:52.559
I I think we talked about agents.

00:22:52.559 --> 00:22:57.120
I mean, it's been a topic on on on

00:22:57.120 --> 00:22:59.039
a couple of channels about how

00:22:59.039 --> 00:23:02.320
agents.mmd or claw.md might be polluting

00:23:02.320 --> 00:23:05.600
everything. I I still have a claw.md

00:23:05.600 --> 00:23:09.120
where where I have some basic setup, but

00:23:09.120 --> 00:23:12.960
I don't I I don't do like um prefer

00:23:12.960 --> 00:23:15.600
simple solutions or

00:23:15.600 --> 00:23:17.120
I I don't know if you do this sort of

00:23:17.120 --> 00:23:22.799
thing like

00:23:22.799 --> 00:23:24.799
For me I I really don't use the clouded

00:23:24.799 --> 00:23:28.000
MD um because spec kit has this

00:23:28.000 --> 00:23:30.159
constitution and it gets invoked as

00:23:30.159 --> 00:23:31.760
opposed

00:23:31.760 --> 00:23:34.400
certain after certain steps uh or phases

00:23:34.400 --> 00:23:36.720
the constitution check gets invoked and

00:23:36.720 --> 00:23:38.480
then we do a full analysis

00:23:38.480 --> 00:23:40.400
>> but constitution would be the ground

00:23:40.400 --> 00:23:42.799
rules I suppose. Yeah, I mean I

00:23:42.799 --> 00:23:45.919
understand that that cloud MD is more

00:23:45.919 --> 00:23:48.159
like an a little additional

00:23:48.159 --> 00:23:49.760
customization on top of the system

00:23:49.760 --> 00:23:51.280
prompt to make sure that your agent

00:23:51.280 --> 00:23:56.000
works in a consistent manner. And

00:23:56.000 --> 00:23:57.679
I'm I'm not sure that we use it

00:23:57.679 --> 00:24:00.000
effectively because what we do is when

00:24:00.000 --> 00:24:03.600
we use specit we it's a bit like mini

00:24:03.600 --> 00:24:07.200
waterfall, right? we we ahead of time

00:24:07.200 --> 00:24:09.840
plan out the work across the different

00:24:09.840 --> 00:24:12.640
areas and then also the definition of

00:24:12.640 --> 00:24:14.720
done and acceptance criteria and and

00:24:14.720 --> 00:24:16.799
basically what we need for validation.

00:24:16.799 --> 00:24:18.880
So that gets reinforced

00:24:18.880 --> 00:24:20.880
>> in the agent loop, right? You pick up

00:24:20.880 --> 00:24:22.720
the next piece of work. You're going to

00:24:22.720 --> 00:24:24.159
work on this. These are the files that

00:24:24.159 --> 00:24:25.840
you should be looking at. Maybe the

00:24:25.840 --> 00:24:27.600
model goes in a little bit of an explore

00:24:27.600 --> 00:24:30.320
to like confirm its understanding and to

00:24:30.320 --> 00:24:31.520
make sure that the file system still

00:24:31.520 --> 00:24:33.520
matches with the task definition. And

00:24:33.520 --> 00:24:36.720
then it um when it's thinks it's done,

00:24:36.720 --> 00:24:38.400
it needs to go through an type of an

00:24:38.400 --> 00:24:40.559
iteration of like you know is this

00:24:40.559 --> 00:24:42.640
really you know validated like did I do

00:24:42.640 --> 00:24:44.799
it correctly? Are my acceptance criteria

00:24:44.799 --> 00:24:47.279
met? Are my test passing?

00:24:47.279 --> 00:24:49.679
I understand you

00:24:49.679 --> 00:24:52.240
has a lot of has a lot of stuff like

00:24:52.240 --> 00:24:54.240
that, but like like I mean when you're

00:24:54.240 --> 00:24:58.080
vibing in a in a clawed session,

00:24:58.080 --> 00:25:00.480
>> you you you don't have like any project

00:25:00.480 --> 00:25:03.440
rules that that apply across all your

00:25:03.440 --> 00:25:05.520
different chat sessions.

00:25:05.520 --> 00:25:07.679
We just introduced a new rule amongst

00:25:07.679 --> 00:25:10.159
ourselves which is if we like what what

00:25:10.159 --> 00:25:13.360
happens what I frequently do is I see a

00:25:13.360 --> 00:25:15.679
problem and I just tell cloud hey go and

00:25:15.679 --> 00:25:17.120
create a github issue and it very

00:25:17.120 --> 00:25:18.799
beautifully captures the problem maybe

00:25:18.799 --> 00:25:20.320
there's a bit of an exploration to find

00:25:20.320 --> 00:25:21.760
out what could be the reason for that

00:25:21.760 --> 00:25:23.679
error and then you know it usually does

00:25:23.679 --> 00:25:25.679
a sub agent and then creates a github

00:25:25.679 --> 00:25:25.919
issue

00:25:25.919 --> 00:25:27.120
>> you have a command or you just tell it

00:25:27.120 --> 00:25:28.159
you just chat to it like

00:25:28.159 --> 00:25:30.080
>> no I I barely do I don't say anything

00:25:30.080 --> 00:25:32.240
anymore recently uh I think it's it's

00:25:32.240 --> 00:25:34.640
gotten that good that I just say You're

00:25:34.640 --> 00:25:36.159
not using beads anymore. You just tell

00:25:36.159 --> 00:25:38.400
it to make a kid issue.

00:25:38.400 --> 00:25:40.799
>> Well, I guess that's one way. I guess it

00:25:40.799 --> 00:25:42.640
>> it uses beads.

00:25:42.640 --> 00:25:46.080
>> No, we use beads for our spec driven

00:25:46.080 --> 00:25:48.799
development, but if we encounter a bug,

00:25:48.799 --> 00:25:50.559
I ask it to go and create a GitHub

00:25:50.559 --> 00:25:50.960
issue.

00:25:50.960 --> 00:25:54.720
>> Oh, because then the team gets wider

00:25:54.720 --> 00:25:57.679
knowledge or wider alignment to to the

00:25:57.679 --> 00:25:58.240
issue.

00:25:58.240 --> 00:26:01.039
>> It's more like beats has become feature

00:26:01.039 --> 00:26:03.919
specific task three. It's like a to-do

00:26:03.919 --> 00:26:05.440
list, but it belongs to a specific

00:26:05.440 --> 00:26:07.039
feature.

00:26:07.039 --> 00:26:08.799
>> So, you know, originally beast is like

00:26:08.799 --> 00:26:10.320
at the root of the repo and it's shared,

00:26:10.320 --> 00:26:11.440
but then you get a lot of merge

00:26:11.440 --> 00:26:13.200
conflicts when you have different uh

00:26:13.200 --> 00:26:14.559
feature branches.

00:26:14.559 --> 00:26:16.240
>> So, we had a lot of issues with that.

00:26:16.240 --> 00:26:19.760
So, we so when we rolled beads into our

00:26:19.760 --> 00:26:21.120
our CLI,

00:26:21.120 --> 00:26:23.600
>> we made it that um create feature

00:26:23.600 --> 00:26:25.520
specific task lists

00:26:25.520 --> 00:26:27.360
>> and and they're basically little task

00:26:27.360 --> 00:26:29.440
trees that belong that's part of our

00:26:29.440 --> 00:26:31.039
mini waterfall, right? We we have a

00:26:31.039 --> 00:26:32.720
feature that we need to work on. We

00:26:32.720 --> 00:26:35.279
create um a plan, research uh the

00:26:35.279 --> 00:26:36.960
technologies, do some spikes on certain

00:26:36.960 --> 00:26:39.840
approaches and then generate a task tree

00:26:39.840 --> 00:26:43.039
uh dependencies phases and MVP path.

00:26:43.039 --> 00:26:44.400
Basically what you get with K as well

00:26:44.400 --> 00:26:45.919
>> and and the GitHub issues is for team

00:26:45.919 --> 00:26:47.279
alignment, right? It's it's

00:26:47.279 --> 00:26:48.559
>> and the GitHub issue is like

00:26:48.559 --> 00:26:50.080
there's something else came up and I

00:26:50.080 --> 00:26:51.279
can't really work on that right now.

00:26:51.279 --> 00:26:52.000
That makes a lot of sense.

00:26:52.000 --> 00:26:53.679
>> It's more like a global like a bug

00:26:53.679 --> 00:26:55.039
report or something like that.

00:26:55.039 --> 00:26:56.720
>> And that leads to this thing called

00:26:56.720 --> 00:26:57.840
extract knowledge. I don't know what

00:26:57.840 --> 00:27:00.720
it's going to say. Not yet because you I

00:27:00.720 --> 00:27:02.960
wanted to link this to the GitHub issue

00:27:02.960 --> 00:27:05.200
where uh I wanted to link this to what

00:27:05.200 --> 00:27:07.600
you just say about VIP coding. So the

00:27:07.600 --> 00:27:09.200
new rule that we introduced is that we

00:27:09.200 --> 00:27:10.720
don't do spectctors in development for

00:27:10.720 --> 00:27:14.480
these type of bugs unless all right it's

00:27:14.480 --> 00:27:16.400
a funny rule because I I introduced it

00:27:16.400 --> 00:27:18.640
and then two minutes later I changed it.

00:27:18.640 --> 00:27:20.799
So the rule is when you have an issue

00:27:20.799 --> 00:27:23.600
like that I noticed some of the our our

00:27:23.600 --> 00:27:25.200
team members they started this huge

00:27:25.200 --> 00:27:27.600
specdriven development on like one line

00:27:27.600 --> 00:27:30.080
fix and it generates a whole spec user

00:27:30.080 --> 00:27:32.640
stories edge cases and and and I was

00:27:32.640 --> 00:27:35.760
like ultimately the the code change was

00:27:35.760 --> 00:27:38.320
literally like one line um I'll give you

00:27:38.320 --> 00:27:41.360
a concrete example it was the go release

00:27:41.360 --> 00:27:43.520
populating the version field there was a

00:27:43.520 --> 00:27:46.000
bug it was populating the wrong constant

00:27:46.000 --> 00:27:48.400
and so when the the CLI ran it didn't

00:27:48.400 --> 00:27:49.919
show the version correctly.

00:27:49.919 --> 00:27:52.080
>> So it was a bug report like hey when we

00:27:52.080 --> 00:27:54.080
run we run SL version it doesn't show us

00:27:54.080 --> 00:27:56.000
the right version and it created like a

00:27:56.000 --> 00:27:59.360
massive user data a user story around it

00:27:59.360 --> 00:28:01.360
and I was like guys for this type of

00:28:01.360 --> 00:28:04.399
stuff can we just vibe it uh and then

00:28:04.399 --> 00:28:06.720
the room change was I had another issue

00:28:06.720 --> 00:28:08.640
and I was like I'm going to vibe it. I I

00:28:08.640 --> 00:28:10.080
just picked up the GitHub issue and I

00:28:10.080 --> 00:28:11.600
literally said nothing to cloud. I I

00:28:11.600 --> 00:28:13.679
boots I I just started cloud. I said I

00:28:13.679 --> 00:28:16.880
want to work on #72

00:28:16.880 --> 00:28:19.440
and cloud went let me run GitHub issue

00:28:19.440 --> 00:28:22.159
view 72. There it is. So you use the

00:28:22.159 --> 00:28:23.600
CLI. I didn't tell it to do that. It

00:28:23.600 --> 00:28:25.120
just automatically went I'm in a

00:28:25.120 --> 00:28:26.640
repository. It's on GitHub. I'm going to

00:28:26.640 --> 00:28:28.240
use the GitHub CLI to view the issue. I

00:28:28.240 --> 00:28:29.919
didn't say any of that. It just pulled

00:28:29.919 --> 00:28:31.679
out the the issue description from that

00:28:31.679 --> 00:28:33.600
particular session that created it. And

00:28:33.600 --> 00:28:35.360
then uh I I switched it to plan mode

00:28:35.360 --> 00:28:37.200
obviously because it was a vibe and I I

00:28:37.200 --> 00:28:40.240
wanted to um you know I wanted it to

00:28:40.240 --> 00:28:42.080
explore and and identify and then tell

00:28:42.080 --> 00:28:43.279
me what it's what's going to do before

00:28:43.279 --> 00:28:44.799
we actually start doing things. So it's

00:28:44.799 --> 00:28:46.720
not the full like user alignment with

00:28:46.720 --> 00:28:48.559
spec driven development. It's very very

00:28:48.559 --> 00:28:51.039
short little plan to do this and and

00:28:51.039 --> 00:28:52.320
then it pulled in a whole bunch of

00:28:52.320 --> 00:28:54.799
additional stuff. It's like okay um in

00:28:54.799 --> 00:28:57.919
this case um there could be use scenario

00:28:57.919 --> 00:28:59.279
where this and that happened. What do we

00:28:59.279 --> 00:29:00.720
do? And I was like oh my god this is

00:29:00.720 --> 00:29:02.799
getting too big. this is not a oneline

00:29:02.799 --> 00:29:04.720
change. Let's do a spec driven

00:29:04.720 --> 00:29:06.720
development. So then I told then I told

00:29:06.720 --> 00:29:08.960
cloud okay that's a nice plan but I

00:29:08.960 --> 00:29:10.720
think we need team alignment on that. So

00:29:10.720 --> 00:29:12.480
then I told it to to feed that

00:29:12.480 --> 00:29:15.279
information into spec ledger specify and

00:29:15.279 --> 00:29:16.799
then it created user stories and edge

00:29:16.799 --> 00:29:17.520
cases

00:29:17.520 --> 00:29:21.279
>> because it blew up my my my uh bug was

00:29:21.279 --> 00:29:24.080
um get attributes whenever you do a pull

00:29:24.080 --> 00:29:25.840
request some of the files are purely

00:29:25.840 --> 00:29:28.159
generated and you want to linguistically

00:29:28.159 --> 00:29:30.240
ignore those so that the PR doesn't like

00:29:30.240 --> 00:29:32.000
expand them. So I wanted those

00:29:32.000 --> 00:29:33.520
autogenerated files to be autoc

00:29:33.520 --> 00:29:36.240
collapsed. Uh, and then the reason it

00:29:36.240 --> 00:29:37.760
blew up was that some pe some

00:29:37.760 --> 00:29:39.760
repositories when you initialize it

00:29:39.760 --> 00:29:42.080
already have git attributes. So how do

00:29:42.080 --> 00:29:43.919
you merge things together? So that's

00:29:43.919 --> 00:29:46.159
where it was like created a whole bunch

00:29:46.159 --> 00:29:48.320
of additional user stories.

00:29:48.320 --> 00:29:48.880
>> Um,

00:29:48.880 --> 00:29:51.200
>> so I'm I'm summarizing this in my head

00:29:51.200 --> 00:29:53.120
that like you you have different types

00:29:53.120 --> 00:29:55.679
of tasks that you do at work.

00:29:55.679 --> 00:29:57.679
your your bug fixes, your business as

00:29:57.679 --> 00:29:59.760
usual type stuff where you don't need so

00:29:59.760 --> 00:30:02.080
much team alignment and then there's the

00:30:02.080 --> 00:30:04.080
things that kind of blow up or whatever

00:30:04.080 --> 00:30:05.279
the features. Yeah,

00:30:05.279 --> 00:30:07.120
>> where you need team alignment.

00:30:07.120 --> 00:30:08.480
>> I think that's the criteria.

00:30:08.480 --> 00:30:08.799
>> Yeah,

00:30:08.799 --> 00:30:10.480
>> I think the the key word is team

00:30:10.480 --> 00:30:12.320
alignment. the moment it's more than a

00:30:12.320 --> 00:30:14.720
oneline change or it requires like a

00:30:14.720 --> 00:30:17.039
user stories and um you I mean the

00:30:17.039 --> 00:30:18.320
moment that it's more than a oneline

00:30:18.320 --> 00:30:22.000
change and you want other people's um

00:30:22.000 --> 00:30:26.159
>> views you should push it as a spec

00:30:26.159 --> 00:30:28.559
I'm just equating this to the the sort

00:30:28.559 --> 00:30:30.720
of sensible defaults at work like we

00:30:30.720 --> 00:30:35.120
have these processes called um uh

00:30:35.120 --> 00:30:39.200
kickoffs for for u for team alignment

00:30:39.200 --> 00:30:42.399
before you start the work and and desk

00:30:42.399 --> 00:30:44.320
checks for team alignment as you

00:30:44.320 --> 00:30:47.600
complete the work. And um I feel like

00:30:47.600 --> 00:30:49.760
these these uh engineering practices

00:30:49.760 --> 00:30:52.559
that we've been doing for years can be

00:30:52.559 --> 00:30:54.880
sort of mapped to to working with

00:30:54.880 --> 00:30:57.200
agents. So

00:30:57.200 --> 00:30:59.279
>> something I need to write about. I think

00:30:59.279 --> 00:31:01.440
what we've learned is that that all of

00:31:01.440 --> 00:31:03.200
these practices that we used to do for

00:31:03.200 --> 00:31:05.600
years where we have a lot of overhead in

00:31:05.600 --> 00:31:08.000
communication uh between people finding

00:31:08.000 --> 00:31:10.480
time to discuss or getting a review

00:31:10.480 --> 00:31:12.399
>> have been collapsed significantly with

00:31:12.399 --> 00:31:16.399
agents accelerated. A lot of them become

00:31:16.399 --> 00:31:19.120
um literally less of an issue because

00:31:19.120 --> 00:31:21.679
you can get the turnaround much faster.

00:31:21.679 --> 00:31:24.960
>> Um but you still need like those good

00:31:24.960 --> 00:31:26.799
practices of

00:31:26.799 --> 00:31:28.399
>> finding team alignment. I'm just

00:31:28.399 --> 00:31:30.240
thinking about it and I might as well

00:31:30.240 --> 00:31:33.360
mention it is that

00:31:33.360 --> 00:31:37.279
traditionally um

00:31:37.279 --> 00:31:40.399
the best desk checks, the best kickoffs,

00:31:40.399 --> 00:31:43.200
they've always been in person and it's

00:31:43.200 --> 00:31:46.159
always been uh like a synchronous thing

00:31:46.159 --> 00:31:48.799
with your team.

00:31:48.799 --> 00:31:51.039
Um, and I noticed that since I'm

00:31:51.039 --> 00:31:53.279
becoming more remote that this this

00:31:53.279 --> 00:31:54.559
relationship is kind of degrading

00:31:54.559 --> 00:31:55.840
because, you know, there's people on the

00:31:55.840 --> 00:31:57.360
call that don't even say anything

00:31:57.360 --> 00:32:00.480
sometimes, which is never a good sign.

00:32:00.480 --> 00:32:03.679
Um, but now we have agents which can't

00:32:03.679 --> 00:32:05.760
talk, you know, they can't sit in around

00:32:05.760 --> 00:32:08.640
a table or a whiteboard. So now we have

00:32:08.640 --> 00:32:12.320
to adapt our workflow so that we can

00:32:12.320 --> 00:32:14.240
bring in the voice of the agent or

00:32:14.240 --> 00:32:15.840
whatever you want to call it the input

00:32:15.840 --> 00:32:20.880
from the agent as well as the input from

00:32:20.880 --> 00:32:23.519
team members. And this is where I think

00:32:23.519 --> 00:32:27.279
things fall down because because like

00:32:27.279 --> 00:32:29.440
yeah the

00:32:29.440 --> 00:32:31.039
it's easy to have a whiteboarding

00:32:31.039 --> 00:32:33.679
session and talk about things but then

00:32:33.679 --> 00:32:37.919
how do you make sure the team is aware

00:32:37.919 --> 00:32:40.240
of that sort of that plan from the

00:32:40.240 --> 00:32:42.640
agent? You know what I mean? Like people

00:32:42.640 --> 00:32:45.039
don't necessarily read all that stuff

00:32:45.039 --> 00:32:47.039
before the for the before the meeting

00:32:47.039 --> 00:32:48.320
sort of thing.

00:32:48.320 --> 00:32:48.559
>> Yeah.

00:32:48.559 --> 00:32:50.480
>> So this is where things get tricky. as

00:32:50.480 --> 00:32:53.039
human team

00:32:53.039 --> 00:32:56.240
team alignment. Yeah, it's damn I

00:32:56.240 --> 00:32:58.399
haven't seen it working perfectly.

00:32:58.399 --> 00:33:00.399
That's for sure.

00:33:00.399 --> 00:33:03.519
And I've also noticed that um so one of

00:33:03.519 --> 00:33:05.120
the major things that I really want to

00:33:05.120 --> 00:33:06.799
focus on in the next few days or over

00:33:06.799 --> 00:33:08.960
the weekends with specledger is to find

00:33:08.960 --> 00:33:11.039
the deterministic validations because I

00:33:11.039 --> 00:33:13.279
feel without it even if you do spec

00:33:13.279 --> 00:33:14.799
development even if you do user stories

00:33:14.799 --> 00:33:17.360
and you have um team alignment on the

00:33:17.360 --> 00:33:20.159
user stories there is still a big

00:33:20.159 --> 00:33:23.760
quality problem with the output

00:33:23.760 --> 00:33:25.679
um if you do not have more deterministic

00:33:25.679 --> 00:33:28.320
validation around

00:33:28.320 --> 00:33:29.760
um

00:33:29.760 --> 00:33:32.559
>> the the the output basically like I

00:33:32.559 --> 00:33:34.000
think this relates back to original

00:33:34.000 --> 00:33:36.799
discussion where and Adam's Jacob was

00:33:36.799 --> 00:33:38.960
saying like you have two two teams one

00:33:38.960 --> 00:33:40.480
team is still very much hands-on with

00:33:40.480 --> 00:33:43.120
the code and another team is very much

00:33:43.120 --> 00:33:44.960
um you know

00:33:44.960 --> 00:33:46.880
>> focused on on just accepting the code

00:33:46.880 --> 00:33:49.039
but that second team must have very

00:33:49.039 --> 00:33:51.440
strong testing practices

00:33:51.440 --> 00:33:53.039
going back to what we was discussing in

00:33:53.039 --> 00:33:55.919
the previous part like there needs to be

00:33:55.919 --> 00:33:58.960
like a this role almost or I mean we're

00:33:58.960 --> 00:34:00.480
talking about roles just generally but

00:34:00.480 --> 00:34:02.720
like yeah I think I I would definitely

00:34:02.720 --> 00:34:04.559
agree that like this these engineering

00:34:04.559 --> 00:34:07.600
practices of having a separate QA team

00:34:07.600 --> 00:34:10.639
is actually probably more important than

00:34:10.639 --> 00:34:12.879
ever

00:34:12.879 --> 00:34:15.440
you need that sort of like uh that

00:34:15.440 --> 00:34:18.159
quality control yeah okay let's

00:34:18.159 --> 00:34:21.440
>> I think you need at least to have the

00:34:21.440 --> 00:34:24.320
expertise to make sure that the quality

00:34:24.320 --> 00:34:27.280
control is part of the feedback loop

00:34:27.280 --> 00:34:27.760
Yeah,

00:34:27.760 --> 00:34:28.800
>> because I don't think you need a

00:34:28.800 --> 00:34:30.240
separate team. I think you need people

00:34:30.240 --> 00:34:31.440
with the expertise.

00:34:31.440 --> 00:34:32.639
>> Yeah, the people with expertise. That

00:34:32.639 --> 00:34:34.320
That's a good point because I'm just

00:34:34.320 --> 00:34:37.119
harking back to the usual QA experiences

00:34:37.119 --> 00:34:39.119
that I have. They usually they're not

00:34:39.119 --> 00:34:41.200
very technical people.

00:34:41.200 --> 00:34:43.200
>> Yes. You know, doing very mundane

00:34:43.200 --> 00:34:44.720
things. And things have changed now

00:34:44.720 --> 00:34:49.679
because now because now with AI you can

00:34:49.679 --> 00:34:52.639
the the name of the game is to make to

00:34:52.639 --> 00:34:55.359
make processes deterministic

00:34:55.359 --> 00:34:59.359
using AI. So

00:34:59.359 --> 00:35:01.040
so things are different now because

00:35:01.040 --> 00:35:04.320
because that that quality control team

00:35:04.320 --> 00:35:08.720
should be able to to do the that oh you

00:35:08.720 --> 00:35:12.079
you sent me a um screen grab. I don't

00:35:12.079 --> 00:35:14.320
know where it was from, but essentially

00:35:14.320 --> 00:35:17.280
I thought it was saying what I'm trying

00:35:17.280 --> 00:35:19.839
to say very well. The the division is

00:35:19.839 --> 00:35:21.440
simple. Deterministic computation and

00:35:21.440 --> 00:35:23.440
prob probabilistic reasoning. They're

00:35:23.440 --> 00:35:25.280
complimentary. The pipe between them is

00:35:25.280 --> 00:35:29.920
where the work happens.

00:35:29.920 --> 00:35:34.480
Getting getting um yeah,

00:35:34.480 --> 00:35:35.520
what was the point I'm trying to make

00:35:35.520 --> 00:35:37.520
here? that the quality control stuff

00:35:37.520 --> 00:35:39.920
needs to somehow prove that the stuff is

00:35:39.920 --> 00:35:42.480
correct in a in a deterministic way or

00:35:42.480 --> 00:35:44.480
something like that. It's the same thing

00:35:44.480 --> 00:35:47.119
like I shared a post on from Reddit and

00:35:47.119 --> 00:35:50.160
it was removed maybe because it was AI

00:35:50.160 --> 00:35:52.960
generated but it the the core point of

00:35:52.960 --> 00:35:55.359
the post was that he's part of a team

00:35:55.359 --> 00:35:59.280
and they have front end issues 40 layers

00:35:59.280 --> 00:36:01.119
of react hook linked together I don't

00:36:01.119 --> 00:36:03.440
even know like so basically they lost

00:36:03.440 --> 00:36:05.760
control over the quality of the product

00:36:05.760 --> 00:36:08.320
and um he's saying that on the back end

00:36:08.320 --> 00:36:10.079
the it's kind of okay the the

00:36:10.079 --> 00:36:12.079
performance of the AI generated code is

00:36:12.079 --> 00:36:14.880
all right But um they're like he's

00:36:14.880 --> 00:36:16.960
really concerned about like long-term

00:36:16.960 --> 00:36:19.119
maintenance. And then the top comment

00:36:19.119 --> 00:36:21.920
uploaded was um you know it's not

00:36:21.920 --> 00:36:25.040
against the law to write to use AI first

00:36:25.040 --> 00:36:26.960
to write tests. And it was funny because

00:36:26.960 --> 00:36:28.720
it was just something we discussed right

00:36:28.720 --> 00:36:30.400
which is like

00:36:30.400 --> 00:36:32.079
>> I we think that the first thing you

00:36:32.079 --> 00:36:33.520
should do if if you have an existing

00:36:33.520 --> 00:36:36.880
code base is to booster your test

00:36:36.880 --> 00:36:39.520
harnesses before you unleash it on your

00:36:39.520 --> 00:36:40.000
code.

00:36:40.000 --> 00:36:43.440
>> Yeah. and and test harnesses.

00:36:43.440 --> 00:36:44.800
>> The thing that I find about test

00:36:44.800 --> 00:36:48.560
harnesses is that people

00:36:48.560 --> 00:36:50.240
>> I think the more experienced you are,

00:36:50.240 --> 00:36:52.240
the more you realize that you could test

00:36:52.240 --> 00:36:54.400
here, you can test this way, you can do

00:36:54.400 --> 00:36:56.160
a regression test here, you can do a

00:36:56.160 --> 00:36:58.079
unit test here, you can you can do the

00:36:58.079 --> 00:37:00.320
Swiss cheese model and those people who

00:37:00.320 --> 00:37:02.720
are experienced can do this can can

00:37:02.720 --> 00:37:05.440
cover have some intuition to do that

00:37:05.440 --> 00:37:08.480
very well.

00:37:08.480 --> 00:37:10.400
But other times like if if you if you

00:37:10.400 --> 00:37:12.640
pass the quality if you pass the QA to

00:37:12.640 --> 00:37:14.079
someone who who doesn't have the

00:37:14.079 --> 00:37:16.560
experience, it's not going to be a great

00:37:16.560 --> 00:37:18.400
experience. It's not going to be a great

00:37:18.400 --> 00:37:20.640
results. That's the biggest issue with

00:37:20.640 --> 00:37:25.200
with um AI coding is that you really

00:37:25.200 --> 00:37:27.599
need a strong engineering like an

00:37:27.599 --> 00:37:31.359
experienced engineer to see patterns

00:37:31.359 --> 00:37:34.400
that the AI is going down and um and

00:37:34.400 --> 00:37:36.400
highlight them. For example, I was

00:37:36.400 --> 00:37:40.400
asking um to do a bug report. Uh when I

00:37:40.400 --> 00:37:44.079
ran a command, it didn't update the the

00:37:44.079 --> 00:37:45.680
data the way I expected. It actually

00:37:45.680 --> 00:37:48.240
gave me an error. And I was like, I

00:37:48.240 --> 00:37:49.680
create a back bug report. It shouldn't

00:37:49.680 --> 00:37:51.680
give an error because the the the file

00:37:51.680 --> 00:37:54.160
system is okay. And it identified that

00:37:54.160 --> 00:37:57.200
that the command is running using

00:37:57.200 --> 00:37:58.960
current working directory. and it didn't

00:37:58.960 --> 00:38:00.400
identify the git route to find the

00:38:00.400 --> 00:38:02.400
relative path to the actual location of

00:38:02.400 --> 00:38:04.160
the file where it's expected whatever

00:38:04.160 --> 00:38:06.880
that is right so so it's it's it's it's

00:38:06.880 --> 00:38:08.000
identified the problem it's using

00:38:08.000 --> 00:38:10.320
current work directory it also noticed

00:38:10.320 --> 00:38:13.280
that there is a a feature to identify

00:38:13.280 --> 00:38:17.040
the git root so to find you can ask git

00:38:17.040 --> 00:38:18.640
uh what is the root of the repo

00:38:18.640 --> 00:38:20.480
>> yeah yeah like I thought and so

00:38:20.480 --> 00:38:22.480
relatively go back to something yeah

00:38:22.480 --> 00:38:26.800
>> yeah it's something uh get reverse parse

00:38:26.800 --> 00:38:28.800
tree and then I I don't like to get the

00:38:28.800 --> 00:38:31.359
get root. It's a weird command,

00:38:31.359 --> 00:38:34.480
>> but it the the AI went and said like,

00:38:34.480 --> 00:38:36.079
okay, you know, there's actually a

00:38:36.079 --> 00:38:38.560
command. It's in this um in this um

00:38:38.560 --> 00:38:40.560
subcommand

00:38:40.560 --> 00:38:43.119
this this git root utility. And I'm

00:38:43.119 --> 00:38:45.280
like, stop right there because you're

00:38:45.280 --> 00:38:46.800
just going to start using this

00:38:46.800 --> 00:38:48.720
functionality, this utility from this

00:38:48.720 --> 00:38:50.960
other like you don't have a dependency

00:38:50.960 --> 00:38:53.280
on this other component and you're going

00:38:53.280 --> 00:38:56.480
to use an internal utility. And I'm

00:38:56.480 --> 00:38:58.720
like, don't do that. Like I if you let

00:38:58.720 --> 00:39:00.800
AI do it will just go ahead. Oh, it

00:39:00.800 --> 00:39:02.400
already exists. There's a function

00:39:02.400 --> 00:39:03.680
there. And it creates a dependency

00:39:03.680 --> 00:39:05.119
between two components that should have

00:39:05.119 --> 00:39:07.200
a dependency. And in reality, it should

00:39:07.200 --> 00:39:08.960
move that utility function into a

00:39:08.960 --> 00:39:10.720
utility library. Create a shared

00:39:10.720 --> 00:39:12.960
dependency on the utility library unless

00:39:12.960 --> 00:39:15.280
you know in Golang it's very common to

00:39:15.280 --> 00:39:18.400
to just duplicate the code uh to to

00:39:18.400 --> 00:39:19.920
avoid creating dependencies between

00:39:19.920 --> 00:39:21.760
components or creating shared

00:39:21.760 --> 00:39:23.839
dependencies. But those type of

00:39:23.839 --> 00:39:25.920
questions if you don't even ask those

00:39:25.920 --> 00:39:28.880
questions to begin with right is already

00:39:28.880 --> 00:39:30.560
the problem. You already have to have

00:39:30.560 --> 00:39:32.240
experience like okay but

00:39:32.240 --> 00:39:34.880
>> it's so it's so nuanced like I'm

00:39:34.880 --> 00:39:36.640
>> reuse and shared dependencies are are

00:39:36.640 --> 00:39:39.520
are painful too. So like where do I go?

00:39:39.520 --> 00:39:41.680
Which way do I go? I'm just thinking at

00:39:41.680 --> 00:39:46.400
work we have like code sense code scene

00:39:46.400 --> 00:39:50.240
sona cube running on every goddamn PR

00:39:50.240 --> 00:39:53.760
and the uh you know the the little hints

00:39:53.760 --> 00:39:56.400
it gives you like oh the complexity is

00:39:56.400 --> 00:40:00.160
moving from scale 7 to scale 8 or what

00:40:00.160 --> 00:40:04.800
have you so bad and

00:40:04.800 --> 00:40:07.359
or or maybe I'm just uh flippant about

00:40:07.359 --> 00:40:10.720
it like a lot of the determinist istic

00:40:10.720 --> 00:40:15.760
ways of me of of measuring code quality

00:40:15.760 --> 00:40:18.400
just judging by my jud judging by my

00:40:18.400 --> 00:40:20.800
anecdotal experiences with these code

00:40:20.800 --> 00:40:23.520
scene whatever tools

00:40:23.520 --> 00:40:25.040
I'm probably just throwing shade but I

00:40:25.040 --> 00:40:26.960
just don't feel that they're very useful

00:40:26.960 --> 00:40:29.119
and and then and if I don't feel them

00:40:29.119 --> 00:40:31.760
that they're useful then I don't feel

00:40:31.760 --> 00:40:33.760
that they're going to be useful for AI

00:40:33.760 --> 00:40:35.760
either you know like these I don't know

00:40:35.760 --> 00:40:37.119
if you've ever played with these tools

00:40:37.119 --> 00:40:38.320
that

00:40:38.320 --> 00:40:41.440
>> it's it's nuanced to do what we this

00:40:41.440 --> 00:40:43.200
this quality really

00:40:43.200 --> 00:40:45.359
>> when you start out as an engineer you

00:40:45.359 --> 00:40:47.599
may try to go for 100% unit test

00:40:47.599 --> 00:40:50.480
coverage

00:40:50.480 --> 00:40:52.079
>> right

00:40:52.079 --> 00:40:53.760
>> and I see your by your face that you

00:40:53.760 --> 00:40:54.960
already say

00:40:54.960 --> 00:40:57.520
>> yeah and and those tools and those tools

00:40:57.520 --> 00:41:00.000
installed by enterprises are like pretty

00:41:00.000 --> 00:41:01.760
much suggesting that oh your coverage is

00:41:01.760 --> 00:41:04.160
low no no and

00:41:04.160 --> 00:41:06.240
>> but now most organizations go like

00:41:06.240 --> 00:41:08.560
coverage should be between 70 and 80%

00:41:08.560 --> 00:41:11.359
not not less and and so on, right? I

00:41:11.359 --> 00:41:13.680
mean, the thing is it goes takes

00:41:13.680 --> 00:41:14.640
experience to realize

00:41:14.640 --> 00:41:16.240
>> everything so nuanced

00:41:16.240 --> 00:41:17.760
>> about what we do.

00:41:17.760 --> 00:41:18.319
>> There's no

00:41:18.319 --> 00:41:19.920
>> it takes experience.

00:41:19.920 --> 00:41:23.200
>> There's no like cleancut way which makes

00:41:23.200 --> 00:41:25.280
it it makes it really painful to talk

00:41:25.280 --> 00:41:27.520
about anything. But that means it it

00:41:27.520 --> 00:41:29.359
ties perfectly back to the original

00:41:29.359 --> 00:41:32.800
statement which is um you need expert

00:41:32.800 --> 00:41:37.760
experience to guide AI still like you

00:41:37.760 --> 00:41:39.920
need an experienced QAT person that

00:41:39.920 --> 00:41:43.280
understand the test harnesses to to to

00:41:43.280 --> 00:41:46.240
be able to make good decisions about

00:41:46.240 --> 00:41:48.319
which responsibility how it should be

00:41:48.319 --> 00:41:48.880
tested.

00:41:48.880 --> 00:41:50.400
>> You need you need

00:41:50.400 --> 00:41:53.839
>> some taste. Yeah. I just I'm just almost

00:41:53.839 --> 00:41:56.400
frustrated that that's the case almost.

00:41:56.400 --> 00:41:58.880
But it's I guess it's keeps us in the

00:41:58.880 --> 00:42:01.200
loop somehow. It's just it's just

00:42:01.200 --> 00:42:01.920
annoying.

00:42:01.920 --> 00:42:03.119
>> For how long, right?

00:42:03.119 --> 00:42:05.119
>> Yeah. It's just a big cringe really.

00:42:05.119 --> 00:42:06.720
Like these things happen and you just

00:42:06.720 --> 00:42:08.079
go, "Oh no,

00:42:08.079 --> 00:42:10.319
>> for how long?" Because we just talked

00:42:10.319 --> 00:42:13.280
about agent personas and about, you

00:42:13.280 --> 00:42:15.200
know, skills and then people are trying

00:42:15.200 --> 00:42:18.160
to capture every single operational

00:42:18.160 --> 00:42:20.640
expertise detail into skills. So for

00:42:20.640 --> 00:42:23.040
example, exactly what I just said. I am

00:42:23.040 --> 00:42:25.839
not an expert at writing um Claude Code

00:42:25.839 --> 00:42:28.240
skills. So when I look at the skill, I

00:42:28.240 --> 00:42:30.000
can't say if it's good or bad. I can

00:42:30.000 --> 00:42:32.400
only anecdotally experience if the agent

00:42:32.400 --> 00:42:34.319
is nondeterministically

00:42:34.319 --> 00:42:36.160
um using the agent correctly. But

00:42:36.160 --> 00:42:37.680
Antropic released agent skill

00:42:37.680 --> 00:42:40.240
evaluators. They created a skill creator

00:42:40.240 --> 00:42:42.560
that includes it instructions to cloud

00:42:42.560 --> 00:42:45.359
on how to evaluate skills. So we're more

00:42:45.359 --> 00:42:47.599
and more of these expertise

00:42:47.599 --> 00:42:52.800
um are trying to be moved into these um

00:42:52.800 --> 00:42:54.400
>> progressively

00:42:54.400 --> 00:42:56.079
there's definitely some sort of maturity

00:42:56.079 --> 00:42:59.760
level right like the the the you know

00:42:59.760 --> 00:43:01.599
somewhere in the middle there needs some

00:43:01.599 --> 00:43:03.520
experience

00:43:03.520 --> 00:43:05.920
but then at some point that experience

00:43:05.920 --> 00:43:08.079
that need for that experience probably

00:43:08.079 --> 00:43:11.599
drops away really and then then the the

00:43:11.599 --> 00:43:14.640
loop becomes you know

00:43:14.640 --> 00:43:18.400
As with a mature product, the

00:43:18.400 --> 00:43:20.560
things can be automated and it will be

00:43:20.560 --> 00:43:23.119
like a flywheel. It will be a machine

00:43:23.119 --> 00:43:25.520
and you'll work on a new machine or

00:43:25.520 --> 00:43:27.839
something. So, it's so it's everything

00:43:27.839 --> 00:43:30.319
is so bloody nuanced and the way things

00:43:30.319 --> 00:43:33.200
fit in is Yeah, I think I I need to

00:43:33.200 --> 00:43:35.680
start writing some things down otherwise

00:43:35.680 --> 00:43:37.680
I'm not going to capture all this stuff.

00:43:37.680 --> 00:43:40.240
>> You'll get a summary from this podcast.

00:43:40.240 --> 00:43:42.880
I don't think it'll be good enough

00:43:42.880 --> 00:43:45.200
um until the next model comes along and

00:43:45.200 --> 00:43:47.280
then we can do it all over again.

00:43:47.280 --> 00:43:48.560
>> Okay, let's let's just get through this

00:43:48.560 --> 00:43:50.480
top row. Let's just let's just chug

00:43:50.480 --> 00:43:52.720
along. Limited context. I think this has

00:43:52.720 --> 00:43:54.800
been said before. I'm not going to go on

00:43:54.800 --> 00:43:58.800
to that. A distracted agent

00:43:58.800 --> 00:44:05.359
using one agent for everything.

00:44:05.359 --> 00:44:07.440
Ah, I I do feel sometimes because I

00:44:07.440 --> 00:44:09.760
create all these issues along the way, I

00:44:09.760 --> 00:44:12.079
do distract the agent. But for me, the

00:44:12.079 --> 00:44:14.160
ultimate like my agent only needs to

00:44:14.160 --> 00:44:15.760
focus on one thing. If I'm in in the

00:44:15.760 --> 00:44:17.359
specdriven development, I need to focus

00:44:17.359 --> 00:44:18.800
on getting the plan and user stories

00:44:18.800 --> 00:44:21.680
out. I made it commit and then do the

00:44:21.680 --> 00:44:23.599
web view. It's like, you know, I don't

00:44:23.599 --> 00:44:24.800
know if you had this, but a lot of

00:44:24.800 --> 00:44:27.359
people, at least early on with screens,

00:44:27.359 --> 00:44:29.119
were like, I need to see the printed out

00:44:29.119 --> 00:44:31.280
version. I need to print it out, hold

00:44:31.280 --> 00:44:33.040
the paper in my hand, and then mark it

00:44:33.040 --> 00:44:35.760
down. put a little unders underline

00:44:35.760 --> 00:44:36.400
here.

00:44:36.400 --> 00:44:38.480
>> Well, so I didn't understand. Oh, do you

00:44:38.480 --> 00:44:39.680
mean like

00:44:39.680 --> 00:44:40.560
>> So, so for me, right,

00:44:40.560 --> 00:44:42.000
>> the really old fashioned way is when you

00:44:42.000 --> 00:44:44.160
print things out and in the printer like

00:44:44.160 --> 00:44:44.480
it's

00:44:44.480 --> 00:44:46.079
>> Yeah. So, how that relates back to what

00:44:46.079 --> 00:44:48.079
I just said is that the agent is writing

00:44:48.079 --> 00:44:49.839
a bunch of markdown. I can go into the

00:44:49.839 --> 00:44:51.760
code editor and read the markdown. But

00:44:51.760 --> 00:44:53.280
ultimately, what I really want is I want

00:44:53.280 --> 00:44:54.960
to commit and push it. So, I can see it

00:44:54.960 --> 00:44:57.040
in my web dashboard and I can like

00:44:57.040 --> 00:44:58.560
highlight these things, put a little

00:44:58.560 --> 00:45:00.160
comment next to it, highlight that, put

00:45:00.160 --> 00:45:02.079
a little comment next to it. And then I

00:45:02.079 --> 00:45:05.200
go back to my terminal and I say let's

00:45:05.200 --> 00:45:07.200
clarify. So the clarify command in

00:45:07.200 --> 00:45:09.040
specure pulls all the comments from the

00:45:09.040 --> 00:45:11.119
web dashboard and then pulls in all of

00:45:11.119 --> 00:45:13.760
the edge questions that are sprinkled

00:45:13.760 --> 00:45:14.560
around the

00:45:14.560 --> 00:45:16.800
>> Okay. Okay. So you streamline that whole

00:45:16.800 --> 00:45:18.800
prompting process with the

00:45:18.800 --> 00:45:20.480
>> Yeah. So even though I have a distracted

00:45:20.480 --> 00:45:24.160
agent, ultimately I have one artifact to

00:45:24.160 --> 00:45:25.839
review and make sure that that artifact

00:45:25.839 --> 00:45:28.319
is focused and then I can clear the pro

00:45:28.319 --> 00:45:30.720
clear the session and and have a new

00:45:30.720 --> 00:45:32.880
agent look at it. But it's fact it's a

00:45:32.880 --> 00:45:33.520
fact.

00:45:33.520 --> 00:45:34.800
>> There was a new there was a new command

00:45:34.800 --> 00:45:36.880
in claude called by the way. So like

00:45:36.880 --> 00:45:38.800
when it's chugging away you can type by

00:45:38.800 --> 00:45:40.480
the way.

00:45:40.480 --> 00:45:42.480
>> Yeah. So I haven't used been able to use

00:45:42.480 --> 00:45:44.240
cloud because of some work commitments.

00:45:44.240 --> 00:45:46.720
Uh and I used it today and I I used

00:45:46.720 --> 00:45:48.960
voice which is pretty cool. So you can

00:45:48.960 --> 00:45:50.319
slash voice and then you can hold

00:45:50.319 --> 00:45:51.040
spacear and

00:45:51.040 --> 00:45:52.960
>> it's just working on the terminal.

00:45:52.960 --> 00:45:56.319
>> Yep. And it it it even changes the size

00:45:56.319 --> 00:45:58.800
of your cursor based on on on the on the

00:45:58.800 --> 00:46:00.000
amplification of your audio.

00:46:00.000 --> 00:46:00.720
>> Oh god,

00:46:00.720 --> 00:46:01.359
>> it's insane.

00:46:01.359 --> 00:46:02.480
>> So it's funny like

00:46:02.480 --> 00:46:03.119
>> what the

00:46:03.119 --> 00:46:05.040
>> So this distracted agent is an anti

00:46:05.040 --> 00:46:07.680
pattern, but then but then Claude

00:46:07.680 --> 00:46:10.160
releases this by the way command. So it

00:46:10.160 --> 00:46:11.680
makes

00:46:11.680 --> 00:46:13.359
>> it's funny when I'm not sure how much of

00:46:13.359 --> 00:46:14.880
the by the way is inside the context,

00:46:14.880 --> 00:46:16.640
but the way that when I used it is like

00:46:16.640 --> 00:46:18.560
this. You do slash by the way. So it's

00:46:18.560 --> 00:46:20.560
doing things and I'm like slash by the

00:46:20.560 --> 00:46:21.760
way because I'm used to queue up

00:46:21.760 --> 00:46:23.359
messages. So I'm like let's queue up

00:46:23.359 --> 00:46:24.720
messages using by the way. I thought it

00:46:24.720 --> 00:46:26.240
was work the same thing but it doesn't.

00:46:26.240 --> 00:46:28.480
So when you do slash by the way it seems

00:46:28.480 --> 00:46:32.160
to suspend the other agent answer your

00:46:32.160 --> 00:46:34.240
question and then wait for you to

00:46:34.240 --> 00:46:35.760
acknowledge that. And then the moment

00:46:35.760 --> 00:46:38.319
you press any key I don't know how but I

00:46:38.319 --> 00:46:39.680
started typing. I thought it was going

00:46:39.680 --> 00:46:42.640
to be like it was a in the in the in the

00:46:42.640 --> 00:46:44.720
message log, right? I thought it was in

00:46:44.720 --> 00:46:46.880
my response reply. So, I started typing

00:46:46.880 --> 00:46:49.359
something and the by the way disappeared

00:46:49.359 --> 00:46:51.839
and when I went to scroll, where is the

00:46:51.839 --> 00:46:54.319
by the way answer? It wasn't there. So,

00:46:54.319 --> 00:46:56.079
to me, it really seems like this by the

00:46:56.079 --> 00:46:58.560
way thing allows you to to like take

00:46:58.560 --> 00:47:00.400
some of that context, suspend the agent,

00:47:00.400 --> 00:47:02.400
answer a question, and it doesn't go

00:47:02.400 --> 00:47:04.480
into your distracted agent thing.

00:47:04.480 --> 00:47:07.119
>> Okay. Okay. That's how I haven't

00:47:07.119 --> 00:47:09.920
actually played with it. So though the

00:47:09.920 --> 00:47:12.319
distracted agent

00:47:12.319 --> 00:47:15.440
>> is is a symptom of uh

00:47:15.440 --> 00:47:16.880
>> and I think the by the way actually

00:47:16.880 --> 00:47:18.880
helps you avoid the distracted agent

00:47:18.880 --> 00:47:21.040
because it suspends the agent, answers

00:47:21.040 --> 00:47:23.040
your question and then goes back to the

00:47:23.040 --> 00:47:24.480
agent and then if you want to queue up a

00:47:24.480 --> 00:47:25.760
message based on that answer, you can

00:47:25.760 --> 00:47:28.079
then put that into the context.

00:47:28.079 --> 00:47:30.240
>> Limited focus. I guess I feel like a lot

00:47:30.240 --> 00:47:31.760
of these things are just describing the

00:47:31.760 --> 00:47:34.880
same thing in different ways. So this is

00:47:34.880 --> 00:47:35.680
just like a

00:47:35.680 --> 00:47:38.560
>> it's lop it's AI generated. It's a

00:47:38.560 --> 00:47:41.520
hallmark of AI generated where it's

00:47:41.520 --> 00:47:43.040
describing the same thing in a different

00:47:43.040 --> 00:47:45.839
way and it's the hardest thing. It all

00:47:45.839 --> 00:47:47.839
it all like makes sense and they all

00:47:47.839 --> 00:47:49.760
have like a slightly different angle but

00:47:49.760 --> 00:47:52.800
they're like 60% the same thing. It's so

00:47:52.800 --> 00:47:54.400
annoying with AI.

00:47:54.400 --> 00:47:57.680
>> Yeah, that's that's true. It's just like

00:47:57.680 --> 00:47:59.359
it's like a broken mirror. There's like

00:47:59.359 --> 00:48:01.440
a million ways of seeing the same thing

00:48:01.440 --> 00:48:04.480
and it's fragmented. It should just be

00:48:04.480 --> 00:48:06.720
>> that's actually really nice way of of of

00:48:06.720 --> 00:48:09.920
looking at it. Um when I ask

00:48:09.920 --> 00:48:11.680
>> Yeah. Because this is my biggest

00:48:11.680 --> 00:48:13.920
problem. I have a a couple of core ideas

00:48:13.920 --> 00:48:18.000
that I want to get out and then

00:48:18.000 --> 00:48:19.760
I don't know about lately but at least a

00:48:19.760 --> 00:48:21.760
while back when then I I have like um

00:48:21.760 --> 00:48:23.359
you know give me the key points and then

00:48:23.359 --> 00:48:25.200
it creates them and then but isn't that

00:48:25.200 --> 00:48:27.119
the same one as the previous point? Yes,

00:48:27.119 --> 00:48:28.400
there's a slight different angle but

00:48:28.400 --> 00:48:29.920
it's almost the same. And then I say

00:48:29.920 --> 00:48:31.119
okay you know what I'll solve it when

00:48:31.119 --> 00:48:33.040
I'm in the slides. So then I generate

00:48:33.040 --> 00:48:34.480
all the slides from it and then every

00:48:34.480 --> 00:48:36.319
slide kind of repeating the same thing

00:48:36.319 --> 00:48:37.760
but slightly different. I'm like, "Oh my

00:48:37.760 --> 00:48:40.400
god, how do I how do I get ex like

00:48:40.400 --> 00:48:41.520
concise

00:48:41.520 --> 00:48:43.599
>> to purely identify the exact

00:48:43.599 --> 00:48:44.880
differences?"

00:48:44.880 --> 00:48:46.800
>> It's really like a blocker mirror.

00:48:46.800 --> 00:48:49.359
>> Yeah. This is where summaries this is

00:48:49.359 --> 00:48:51.520
where I guess you need to put your foot

00:48:51.520 --> 00:48:53.680
down and make a commandment make a con

00:48:53.680 --> 00:48:57.520
make a call. Um

00:48:57.520 --> 00:48:59.440
ah this is another thing about Yeah,

00:48:59.440 --> 00:49:01.200
we've and we started we started off

00:49:01.200 --> 00:49:03.440
here. Okay. We did the top row. I think

00:49:03.440 --> 00:49:05.520
that's enough for one session. It was

00:49:05.520 --> 00:49:08.400
kind of painful because it kind kind of

00:49:08.400 --> 00:49:10.960
repeated itself. But still, I think this

00:49:10.960 --> 00:49:13.200
is a good exercise. And what I like what

00:49:13.200 --> 00:49:17.040
what they've done here is that when

00:49:17.040 --> 00:49:19.359
they've in, you know, they vibe coded

00:49:19.359 --> 00:49:23.440
something so that like um uh Oh, I

00:49:23.440 --> 00:49:25.599
thought they were like they were doing

00:49:25.599 --> 00:49:28.720
some pretty good linking to each other.

00:49:28.720 --> 00:49:31.520
Um, and now I can't find the link. Like,

00:49:31.520 --> 00:49:33.760
yeah, it's like you can see that the

00:49:33.760 --> 00:49:37.200
blackbox AI obstacle is related to this.

00:49:37.200 --> 00:49:39.839
It's caused by this,

00:49:39.839 --> 00:49:43.280
solved by that. Sorry,

00:49:43.280 --> 00:49:44.960
you're going to have to cut that. Um,

00:49:44.960 --> 00:49:48.400
but basically what I wanted to say was,

00:49:48.400 --> 00:49:51.280
um, I mean the sides looks nice, right?

00:49:51.280 --> 00:49:54.319
But I do feel like it it has a lot of

00:49:54.319 --> 00:49:56.480
repetition. Um,

00:49:56.480 --> 00:49:58.559
>> yeah.

00:49:58.559 --> 00:50:00.960
is detrimental detrimental to trying to

00:50:00.960 --> 00:50:02.400
get a point across

00:50:02.400 --> 00:50:05.440
>> is if you cannot filter that out.

00:50:05.440 --> 00:50:05.839
>> Yeah.

00:50:05.839 --> 00:50:08.960
>> Um you know what I saw yesterday I think

00:50:08.960 --> 00:50:10.480
>> and it's not easy it's not easy to

00:50:10.480 --> 00:50:13.680
distill this though. So a point that I

00:50:13.680 --> 00:50:15.440
saw yesterday and maybe it's not the

00:50:15.440 --> 00:50:17.440
same thing but I saw a post on on our

00:50:17.440 --> 00:50:20.640
terraform on Reddit and it was I've been

00:50:20.640 --> 00:50:22.480
working for five or six years as a ter

00:50:22.480 --> 00:50:24.720
as a infrastructure or devops consultant

00:50:24.720 --> 00:50:26.960
or platform engineer or security was

00:50:26.960 --> 00:50:30.079
like security engineer and I have

00:50:30.079 --> 00:50:33.760
collected here and published pre

00:50:33.760 --> 00:50:35.599
publicly

00:50:35.599 --> 00:50:39.599
and it was like 150 modules for AWS 200

00:50:39.599 --> 00:50:42.720
modules for GCP 120 modules for for A is

00:50:42.720 --> 00:50:44.559
Azure

00:50:44.559 --> 00:50:47.839
all on one like website and the website

00:50:47.839 --> 00:50:49.599
name was horrible so it's clearly not

00:50:49.599 --> 00:50:52.880
sales so maybe it actually is solid

00:50:52.880 --> 00:50:55.119
solid telephone code but when I see that

00:50:55.119 --> 00:50:56.880
>> how bad the name is

00:50:56.880 --> 00:50:59.359
>> I then I see that I'm like yeah okay

00:50:59.359 --> 00:51:03.359
there's no way in hell like maybe

00:51:03.359 --> 00:51:06.559
90% of that is pure AI slop like how are

00:51:06.559 --> 00:51:08.960
you going to publish you know over 400

00:51:08.960 --> 00:51:10.960
different Terraform modules

00:51:10.960 --> 00:51:14.160
>> and just say here you go like how how

00:51:14.160 --> 00:51:16.880
can I I I was even

00:51:16.880 --> 00:51:18.000
>> there's probably tools around this

00:51:18.000 --> 00:51:19.440
already but there should be like a tool

00:51:19.440 --> 00:51:21.839
to recognize AI slop you know you said

00:51:21.839 --> 00:51:24.640
this you said this here it's very

00:51:24.640 --> 00:51:27.280
similar to what you said just there you

00:51:27.280 --> 00:51:31.520
know minus 10 points you know like

00:51:31.520 --> 00:51:33.520
there should be a tool to recognize that

00:51:33.520 --> 00:51:35.920
something can be summarized or

00:51:35.920 --> 00:51:38.319
>> I a

00:51:38.319 --> 00:51:40.000
frustrated with Reddit because I'm

00:51:40.000 --> 00:51:44.000
reading posts And if they I guess if you

00:51:44.000 --> 00:51:45.839
can keep it short enough for me not to

00:51:45.839 --> 00:51:48.880
go like holy wall of text. If it's

00:51:48.880 --> 00:51:50.559
like a wall of text, you start reading.

00:51:50.559 --> 00:51:52.000
You start reading and you go like hold

00:51:52.000 --> 00:51:53.359
on, how much more is there? And then you

00:51:53.359 --> 00:51:54.720
keep scrolling for like five swipes and

00:51:54.720 --> 00:51:56.559
you go like what the I'm not going

00:51:56.559 --> 00:51:58.319
to read all of that. Then okay, that's

00:51:58.319 --> 00:51:59.520
clear. I'm not I'm just going to exit

00:51:59.520 --> 00:52:01.680
that thread. But if it's like short

00:52:01.680 --> 00:52:03.599
enough and I then spend time to comment

00:52:03.599 --> 00:52:06.400
on it and then

00:52:06.400 --> 00:52:07.839
maybe I come back to my comment because

00:52:07.839 --> 00:52:09.520
I'm like, "Hey, why nobody replied to my

00:52:09.520 --> 00:52:12.240
comment or what's going on?" And then

00:52:12.240 --> 00:52:14.960
removed. Hey, and then you look at the

00:52:14.960 --> 00:52:17.040
comments, AI slop, AI slop, AI slop

00:52:17.040 --> 00:52:18.880
every single time. Now, everywhere on

00:52:18.880 --> 00:52:20.800
social media, people go like, "Oh, it's

00:52:20.800 --> 00:52:22.480
all AI slop. Oh, I'm not even going to

00:52:22.480 --> 00:52:23.599
read that." And then, and then the

00:52:23.599 --> 00:52:25.359
moderators usually put the rule like,

00:52:25.359 --> 00:52:27.040
"If you don't spend the time to write

00:52:27.040 --> 00:52:28.319
it, then we're not going to spend the

00:52:28.319 --> 00:52:30.960
time to read it.

00:52:30.960 --> 00:52:34.720
So, but the way AI slop is recognized

00:52:34.720 --> 00:52:37.599
right now is just by human intuition,

00:52:37.599 --> 00:52:39.040
right? Or there's no

00:52:39.040 --> 00:52:41.119
>> Yeah, I think they go like, "Oh, there's

00:52:41.119 --> 00:52:46.079
an M dash AI slop."

00:52:46.079 --> 00:52:47.839
And you know what? I had a very funny

00:52:47.839 --> 00:52:50.640
situation. I used AI to to um I use

00:52:50.640 --> 00:52:52.960
cloud, right? But I didn't want cloud

00:52:52.960 --> 00:52:56.960
co-author on my commit um for reasons.

00:52:56.960 --> 00:52:59.040
And I let it I told it like give me the

00:52:59.040 --> 00:53:00.800
commit message and then I do the commit

00:53:00.800 --> 00:53:02.800
and then uh okay open the GitHub pull

00:53:02.800 --> 00:53:04.880
request and when it does a pull request

00:53:04.880 --> 00:53:07.839
it doesn't put itself as an author it oh

00:53:07.839 --> 00:53:09.520
maybe it does sometimes but it didn't in

00:53:09.520 --> 00:53:12.800
this case and I was like happy happy and

00:53:12.800 --> 00:53:15.200
then the next like two hours later I go

00:53:15.200 --> 00:53:16.800
back to the PR and I noticed the title

00:53:16.800 --> 00:53:19.119
has an M dash. I was like god damn it I

00:53:19.119 --> 00:53:20.960
didn't see the m dash

00:53:20.960 --> 00:53:22.960
>> and now I have to rewrite my history.

00:53:22.960 --> 00:53:25.440
Ah, yeah. No, no, it was an M dash in

00:53:25.440 --> 00:53:27.280
the title of the PR. And then if you go

00:53:27.280 --> 00:53:28.880
and edit the title, of course, everyone

00:53:28.880 --> 00:53:30.880
can see Vincent changed the title from

00:53:30.880 --> 00:53:33.040
two. But can you see the actual

00:53:33.040 --> 00:53:34.800
difference? Because it was changing a

00:53:34.800 --> 00:53:36.720
damn dash to a dash. And I was like,

00:53:36.720 --> 00:53:38.640
yeah, nobody's going to nobody's going

00:53:38.640 --> 00:53:40.960
to know what I did.

00:53:40.960 --> 00:53:44.480
Well, let let's change um the topic a

00:53:44.480 --> 00:53:47.040
little bit to to AI um to infrastructure

00:53:47.040 --> 00:53:48.720
type stuff because this is the AI

00:53:48.720 --> 00:53:50.720
infrastructure podcast. I wanted to

00:53:50.720 --> 00:53:54.240
mention to you that I I tried swamp

00:53:54.240 --> 00:53:55.920
swampy donkey.

00:53:55.920 --> 00:53:57.440
>> Do you understand now? Because

00:53:57.440 --> 00:53:59.359
>> I do pretty much understand it and and

00:53:59.359 --> 00:54:03.440
as I was evaluating it, I was asking uh

00:54:03.440 --> 00:54:05.200
Codex at the time because I've run out

00:54:05.200 --> 00:54:08.720
of bloody claude credits. Um

00:54:08.720 --> 00:54:11.839
like how how did swamp help? So like

00:54:11.839 --> 00:54:14.559
swamp essentially

00:54:14.559 --> 00:54:16.640
as I understand it, it grabs the model

00:54:16.640 --> 00:54:21.280
definitions from AWS. Yeah, like model

00:54:21.280 --> 00:54:23.760
definitions is like I don't know this

00:54:23.760 --> 00:54:25.680
what I think we talked about this

00:54:25.680 --> 00:54:26.880
>> uh the what

00:54:26.880 --> 00:54:30.160
>> the like the open API or JSON schema or

00:54:30.160 --> 00:54:30.720
something around

00:54:30.720 --> 00:54:32.640
>> yeah like the JSON schema it it grabs

00:54:32.640 --> 00:54:33.440
down

00:54:33.440 --> 00:54:35.680
>> yeah it grabs down the the schema as

00:54:35.680 --> 00:54:38.400
such from from

00:54:38.400 --> 00:54:40.079
>> I mean I I guess they have their own

00:54:40.079 --> 00:54:42.480
repositories of the models

00:54:42.480 --> 00:54:45.040
um which are probably derived like the

00:54:45.040 --> 00:54:48.559
same way you do well the the way CDK

00:54:48.559 --> 00:54:50.880
works but Okay, not the same way CDK TF

00:54:50.880 --> 00:54:52.880
works, but anyway, it grabs it down from

00:54:52.880 --> 00:54:56.000
AWS and then and then you basically talk

00:54:56.000 --> 00:55:00.640
to the the agent and then and then Swamp

00:55:00.640 --> 00:55:04.000
sort of creates this environment so that

00:55:04.000 --> 00:55:07.520
it's geared up for doing

00:55:07.520 --> 00:55:09.440
uh infrastructure work. So you you

00:55:09.440 --> 00:55:13.440
create like um you know you say to it

00:55:13.440 --> 00:55:15.760
like create an EC2 instance blah blah

00:55:15.760 --> 00:55:18.559
blah and then it basically sets up a

00:55:18.559 --> 00:55:20.480
workflow and then you then once you've

00:55:20.480 --> 00:55:24.240
got that workflow then you deploy it

00:55:24.240 --> 00:55:26.800
in in a sort of structured reproducible

00:55:26.800 --> 00:55:28.559
way. That's the way I understand how it

00:55:28.559 --> 00:55:32.000
works at the moment. Um so instead of

00:55:32.000 --> 00:55:33.920
like infrastructure as code it creates

00:55:33.920 --> 00:55:38.319
workflows that do repetit like to um

00:55:38.319 --> 00:55:39.440
repeatedly

00:55:39.440 --> 00:55:42.000
>> yeah that's the way I I to be honest I

00:55:42.000 --> 00:55:45.359
haven't repeated this thing I I'm a

00:55:45.359 --> 00:55:47.119
little bit confused like the on boarding

00:55:47.119 --> 00:55:49.200
is a bit strange because like you do an

00:55:49.200 --> 00:55:51.440
init and then expects you to go into

00:55:51.440 --> 00:55:53.920
your into your uh into your chat session

00:55:53.920 --> 00:55:57.040
with Claude or Codex to do the thing.

00:55:57.040 --> 00:55:58.319
This is where I thought was a little

00:55:58.319 --> 00:56:00.240
bit, you know, confusing here. Like it

00:56:00.240 --> 00:56:03.359
says in it second step, you know, do do

00:56:03.359 --> 00:56:05.440
tell your agent, but it did it didn't

00:56:05.440 --> 00:56:08.880
explicitly say, you know, MPX claude or

00:56:08.880 --> 00:56:12.400
Codex or something. So that that was um

00:56:12.400 --> 00:56:15.040
a thing. But the the last bit I was just

00:56:15.040 --> 00:56:17.920
chatting with um Mr. Stack, Mr. Paul

00:56:17.920 --> 00:56:21.599
Stack was uh that that I didn't

00:56:21.599 --> 00:56:23.359
understand how it links up with the AWS

00:56:23.359 --> 00:56:26.000
CLI. And then I think he's trying to say

00:56:26.000 --> 00:56:28.799
that you need to just set that up.

00:56:28.799 --> 00:56:30.480
>> It just uses the environment.

00:56:30.480 --> 00:56:30.880
>> Yeah,

00:56:30.880 --> 00:56:33.680
>> I guess it uses the a AWS CLI credential

00:56:33.680 --> 00:56:35.440
chain which is you either have a

00:56:35.440 --> 00:56:37.839
>> So my my my first taste of Swamp I think

00:56:37.839 --> 00:56:39.280
I think I get what they're doing

00:56:39.280 --> 00:56:41.839
actually. Um and it seems to be quite

00:56:41.839 --> 00:56:43.119
sane.

00:56:43.119 --> 00:56:46.880
>> Um so that my initial first impressions

00:56:46.880 --> 00:56:51.520
is is good. I'm going to give it a try a

00:56:51.520 --> 00:56:55.359
bit more time. So yeah.

00:56:55.359 --> 00:56:55.680
>> Yeah,

00:56:55.680 --> 00:56:56.720
>> give it a try.

00:56:56.720 --> 00:56:57.040
>> And

00:56:57.040 --> 00:56:58.960
>> I found they get they they they got more

00:56:58.960 --> 00:57:00.319
and more aggressive when people keep

00:57:00.319 --> 00:57:02.559
asking questions.

00:57:02.559 --> 00:57:05.040
>> Yeah, I think I think it's like I can

00:57:05.040 --> 00:57:06.960
understand the deal with this one

00:57:06.960 --> 00:57:08.799
because like I guess

00:57:08.799 --> 00:57:11.680
>> it it is a big bit of a mindset shift to

00:57:11.680 --> 00:57:13.359
sort of like

00:57:13.359 --> 00:57:13.760
>> um

00:57:13.760 --> 00:57:14.640
>> Can you explain something?

00:57:14.640 --> 00:57:17.680
>> Try it out. Yeah. like why does it need

00:57:17.680 --> 00:57:20.960
to be a specific

00:57:20.960 --> 00:57:22.480
workflow

00:57:22.480 --> 00:57:25.920
and not cannot be just a generic like I

00:57:25.920 --> 00:57:27.760
don't need a specific front- end

00:57:27.760 --> 00:57:30.480
workflow or a backend workflow right I

00:57:30.480 --> 00:57:32.319
just use cloud it can write front-end

00:57:32.319 --> 00:57:34.960
code it can write backend code it can

00:57:34.960 --> 00:57:37.119
write infrastructure code it can write

00:57:37.119 --> 00:57:40.480
github actions why do I need a separate

00:57:40.480 --> 00:57:44.319
tool or a CLI or a shell to do something

00:57:44.319 --> 00:57:45.839
specific

00:57:45.839 --> 00:57:47.599
Well, I I I think it's consolidating,

00:57:47.599 --> 00:57:50.160
but anyway, I don't want to say any too

00:57:50.160 --> 00:57:51.200
much more because I haven't even

00:57:51.200 --> 00:57:53.359
deployed the resources yet. So, I still

00:57:53.359 --> 00:57:53.599
have

00:57:53.599 --> 00:57:55.680
>> that's the question that I have because

00:57:55.680 --> 00:57:57.599
the same question I have to every single

00:57:57.599 --> 00:57:59.760
company launching an agent shell is

00:57:59.760 --> 00:58:02.079
like, why do I need your agent shell?

00:58:02.079 --> 00:58:04.400
And then the most common response I've

00:58:04.400 --> 00:58:06.079
received is that

00:58:06.079 --> 00:58:07.680
>> if you're an expert in AI and you know

00:58:07.680 --> 00:58:09.680
how to use an agent shell, then you can

00:58:09.680 --> 00:58:11.520
do everything with one generic shell.

00:58:11.520 --> 00:58:13.680
But if you're not, then you don't know

00:58:13.680 --> 00:58:15.520
how to set up your agent shell or how to

00:58:15.520 --> 00:58:17.280
pull in the skills or how to set up the

00:58:17.280 --> 00:58:19.440
things. Then you need a specific agent

00:58:19.440 --> 00:58:21.920
shell. That was the con the the response

00:58:21.920 --> 00:58:25.040
I've received from um Stackpack when he

00:58:25.040 --> 00:58:26.960
says, "Yes, if you're a power user, you

00:58:26.960 --> 00:58:28.400
know, you don't need this, but most

00:58:28.400 --> 00:58:30.400
people don't know how to use it." And I

00:58:30.400 --> 00:58:31.680
don't think that's a good enough answer

00:58:31.680 --> 00:58:32.480
to me. Like,

00:58:32.480 --> 00:58:35.280
>> yeah, I don't like things that are not

00:58:35.280 --> 00:58:37.839
aimed at a power user. That's for sure.

00:58:37.839 --> 00:58:39.200
>> I don't think he says it's not aimed at

00:58:39.200 --> 00:58:43.440
a power user. It's more like um because

00:58:43.440 --> 00:58:46.000
a power user can still use a tool to

00:58:46.000 --> 00:58:48.079
good effect. It's just that I don't

00:58:48.079 --> 00:58:51.920
think the tools should exist.

00:58:51.920 --> 00:58:53.760
The the one the the one thing that I

00:58:53.760 --> 00:58:56.240
that worried me with Swamp was that the

00:58:56.240 --> 00:58:58.160
every time I ran Swamp on my Raspberry

00:58:58.160 --> 00:59:03.040
Pi, it took a few seconds to work. So So

00:59:03.040 --> 00:59:05.200
for a power user, that's one thing I

00:59:05.200 --> 00:59:07.599
that's a bit of a smell test is that

00:59:07.599 --> 00:59:09.839
things need to be fast. And if that's

00:59:09.839 --> 00:59:12.480
slow, you need to tell me that you're

00:59:12.480 --> 00:59:14.160
doing a network request or something.

00:59:14.160 --> 00:59:16.079
And we're waiting for this network

00:59:16.079 --> 00:59:18.880
request. But anyway, the the the other

00:59:18.880 --> 00:59:20.799
final thing because I I need it for

00:59:20.799 --> 00:59:22.880
work. Actually, I need it for work. So

00:59:22.880 --> 00:59:25.200
CDK question for you, Vincent. I might

00:59:25.200 --> 00:59:26.640
have asked you this before, but I'm just

00:59:26.640 --> 00:59:28.880
going to ask you again.

00:59:28.880 --> 00:59:31.359
>> Big big CDK landscape at work. We've

00:59:31.359 --> 00:59:33.920
created constructs. The constructs, the

00:59:33.920 --> 00:59:35.599
idea of the constructs is that we have

00:59:35.599 --> 00:59:39.119
repeatable patterns within a governance

00:59:39.119 --> 00:59:41.920
ADR signed off being copied and they

00:59:41.920 --> 00:59:44.079
diverge. Diverged.

00:59:44.079 --> 00:59:45.200
>> They've been copied and they've

00:59:45.200 --> 00:59:46.480
diverged.

00:59:46.480 --> 00:59:48.000
>> What do you mean the patterns diverged?

00:59:48.000 --> 00:59:48.960
What do you mean?

00:59:48.960 --> 00:59:51.040
>> No, you you mentioned last time you have

00:59:51.040 --> 00:59:52.880
like reusable construct but they've been

00:59:52.880 --> 00:59:54.240
copied around and they have slightly

00:59:54.240 --> 00:59:55.680
diverged and you're trying to realign

00:59:55.680 --> 00:59:56.319
them.

00:59:56.319 --> 00:59:58.160
>> Yeah, we're we're trying to realign

00:59:58.160 --> 01:00:00.880
them. This the problem is is that when

01:00:00.880 --> 01:00:03.599
you deploy a stack stack is that the

01:00:03.599 --> 01:00:05.680
right term or an app I'm

01:00:05.680 --> 01:00:07.839
>> cloudformation type an app has multiple

01:00:07.839 --> 01:00:08.640
stacks

01:00:08.640 --> 01:00:11.119
>> okay yeah exactly when you when you

01:00:11.119 --> 01:00:13.920
deploy an app multiple stacks we need to

01:00:13.920 --> 01:00:18.079
prove that that that those constructs

01:00:18.079 --> 01:00:20.960
were used in in that stack

01:00:20.960 --> 01:00:22.559
>> oh

01:00:22.559 --> 01:00:26.160
>> so it it can't it can't be a simple like

01:00:26.160 --> 01:00:27.680
>> bill of materials coming out of cloud

01:00:27.680 --> 01:00:29.599
form because that doesn't make sense

01:00:29.599 --> 01:00:33.280
>> we we need to say that this um you know

01:00:33.280 --> 01:00:37.200
acme construct for for buckets was used

01:00:37.200 --> 01:00:40.000
acme construct for Dynamob was used acme

01:00:40.000 --> 01:00:44.559
construct for I don't know um certain uh

01:00:44.559 --> 01:00:47.280
support role was used

01:00:47.280 --> 01:00:50.400
when I was chatting about it to to AWS

01:00:50.400 --> 01:00:53.920
docs uh MCP

01:00:53.920 --> 01:00:56.640
essentially it suggested just tagging

01:00:56.640 --> 01:00:58.720
tagging the constructs and and then

01:00:58.720 --> 01:01:02.319
deriving the tags from from the

01:01:02.319 --> 01:01:04.880
from the deployment which seemed a bit

01:01:04.880 --> 01:01:07.440
lame but but seemed but seemed fine at

01:01:07.440 --> 01:01:08.720
the same time. I just I was just

01:01:08.720 --> 01:01:08.960
wondering

01:01:08.960 --> 01:01:10.400
>> yeah I've heard that before like

01:01:10.400 --> 01:01:12.640
basically you track which module version

01:01:12.640 --> 01:01:14.319
of in terapform has been used by looking

01:01:14.319 --> 01:01:16.799
at the resources tag like they they

01:01:16.799 --> 01:01:18.720
identify deploy I've been deployed by

01:01:18.720 --> 01:01:20.400
this version.

01:01:20.400 --> 01:01:22.160
>> I guess that's it's probably just good

01:01:22.160 --> 01:01:25.200
enough to rely on tags. I just thought

01:01:25.200 --> 01:01:28.160
there might be I I mean initially I was

01:01:28.160 --> 01:01:30.960
I was going down this rabbit hole where

01:01:30.960 --> 01:01:33.680
you know when you deploy on CDK you get

01:01:33.680 --> 01:01:36.880
the CDK metadata field that's put in by

01:01:36.880 --> 01:01:38.160
>> normally you would do this through

01:01:38.160 --> 01:01:40.480
through aspects

01:01:40.480 --> 01:01:42.079
um and you can have like a whole bunch

01:01:42.079 --> 01:01:46.079
of um compliance aspect aspect so what

01:01:46.079 --> 01:01:47.599
they do aspects is

01:01:47.599 --> 01:01:50.480
>> aspects is that an AWS thing

01:01:50.480 --> 01:01:52.480
>> it's yeah they they ported it over to

01:01:52.480 --> 01:01:55.359
CDTF as well so what it does is it they

01:01:55.359 --> 01:01:57.359
are invoked they are attached to nodes

01:01:57.359 --> 01:02:00.400
within the tree and they're invoked

01:02:00.400 --> 01:02:04.000
um during synthesis uh when when when

01:02:04.000 --> 01:02:06.480
constructs have been generated

01:02:06.480 --> 01:02:09.680
um and they are then visiting the nodes

01:02:09.680 --> 01:02:11.280
and then some functional code gets

01:02:11.280 --> 01:02:14.559
executed. So aspects can be used to

01:02:14.559 --> 01:02:19.440
validate things. Um if you were to

01:02:19.440 --> 01:02:21.839
like for example there's one aspect in

01:02:21.839 --> 01:02:25.119
the AWS CDK library that validates

01:02:25.119 --> 01:02:27.839
you can you can activate it to ensure

01:02:27.839 --> 01:02:31.680
that IMDSV2 is used the uh information

01:02:31.680 --> 01:02:33.599
metadata service

01:02:33.599 --> 01:02:35.839
>> um where you have v1 did not require a

01:02:35.839 --> 01:02:38.079
token but v2 requires a token and it's a

01:02:38.079 --> 01:02:39.680
security compliance thing usually that

01:02:39.680 --> 01:02:42.319
you want your AWS instance first time

01:02:42.319 --> 01:02:44.079
I'm hearing thank thanks for the tip I'm

01:02:44.079 --> 01:02:45.440
going to have to explore that

01:02:45.440 --> 01:02:47.760
>> yeah aspects are very powerful. Um, they

01:02:47.760 --> 01:02:48.400
can be used.

01:02:48.400 --> 01:02:50.000
>> I kind of assume that that sort of thing

01:02:50.000 --> 01:02:53.119
would be an SCP, but one problem at work

01:02:53.119 --> 01:02:55.280
is that we don't even know who controls

01:02:55.280 --> 01:02:57.680
the organization. Like this there's

01:02:57.680 --> 01:02:59.520
there's an organizational breakdown

01:02:59.520 --> 01:03:02.960
where the people who admin organization

01:03:02.960 --> 01:03:04.960
don't seem we don't even know who they

01:03:04.960 --> 01:03:06.559
are.

01:03:06.559 --> 01:03:14.480
So rolling out MCPs SCP sorry is um okay

01:03:14.480 --> 01:03:15.760
confusing.

01:03:15.760 --> 01:03:17.440
Yeah. So aspects are a way to

01:03:17.440 --> 01:03:20.240
programmatically and you Yeah. Aspects

01:03:20.240 --> 01:03:22.720
are a way to programmatically validate

01:03:22.720 --> 01:03:26.160
certain and ensure that that that

01:03:26.160 --> 01:03:28.480
resources are created in the construct

01:03:28.480 --> 01:03:30.799
tree or validate the configuration of a

01:03:30.799 --> 01:03:32.400
resource in the construct tree. So you

01:03:32.400 --> 01:03:34.240
can do a lot of things like is this

01:03:34.240 --> 01:03:37.280
resource of this type and if that's the

01:03:37.280 --> 01:03:39.599
case does the field this particular

01:03:39.599 --> 01:03:41.599
configuration field match this

01:03:41.599 --> 01:03:44.079
particular um value. So that's why when

01:03:44.079 --> 01:03:46.079
when Anto Babenco started talking about

01:03:46.079 --> 01:03:47.920
compliance.tf

01:03:47.920 --> 01:03:49.119
uh introducing a whole bunch of

01:03:49.119 --> 01:03:51.440
compliancy around Terraform modules,

01:03:51.440 --> 01:03:53.760
>> I was like that would be so easy to do

01:03:53.760 --> 01:03:56.319
on top of CDKTF because you just create

01:03:56.319 --> 01:03:58.559
aspects. You just create an aspect and

01:03:58.559 --> 01:04:01.119
you just run them uh across your

01:04:01.119 --> 01:04:03.200
construct tree and you validate that the

01:04:03.200 --> 01:04:04.960
resources are configured correctly.

01:04:04.960 --> 01:04:06.400
>> That sounds like quite a cool thing. I

01:04:06.400 --> 01:04:07.760
mean I'm just looking at the page right

01:04:07.760 --> 01:04:10.640
here. That sounds like because in

01:04:10.640 --> 01:04:15.440
terraform you would have to

01:04:15.440 --> 01:04:17.839
do some weird I'm trying to think of the

01:04:17.839 --> 01:04:19.920
name of the like OPA you need like some

01:04:19.920 --> 01:04:22.960
sort of weird policy.

01:04:22.960 --> 01:04:24.400
>> So there's several ways to do it in

01:04:24.400 --> 01:04:27.520
terapform you can do OPA or Sentinel

01:04:27.520 --> 01:04:29.520
from Sentinel is the Ashikorp way that's

01:04:29.520 --> 01:04:31.680
only in Haship cloud. If you want to do

01:04:31.680 --> 01:04:33.520
the open source one then you use open

01:04:33.520 --> 01:04:36.319
policy agent which is basically uh like

01:04:36.319 --> 01:04:38.880
a rule based matching engine like

01:04:38.880 --> 01:04:41.359
prologue um and you basically define

01:04:41.359 --> 01:04:43.839
your rules and it works across

01:04:43.839 --> 01:04:46.799
Kubernetes for Kubernetes admission um

01:04:46.799 --> 01:04:50.079
hooks but it also works across terraform

01:04:50.079 --> 01:04:52.960
plan files or JSON you can apply it

01:04:52.960 --> 01:04:55.599
across JSON so then it understands the

01:04:55.599 --> 01:04:57.440
concept of like a plan and what's the

01:04:57.440 --> 01:04:58.960
before and after of a resource and then

01:04:58.960 --> 01:05:02.160
it can validate that the after still is

01:05:02.160 --> 01:05:02.960
um is

01:05:02.960 --> 01:05:04.640
>> I find like you have to be a super

01:05:04.640 --> 01:05:07.359
mature shop to start using OPA. Um

01:05:07.359 --> 01:05:09.760
>> we use we use it at so we use it for tag

01:05:09.760 --> 01:05:12.480
compliance. So we have a couple of rules

01:05:12.480 --> 01:05:15.200
that identify which are the allowed tech

01:05:15.200 --> 01:05:17.920
like required tag keys. So if a resource

01:05:17.920 --> 01:05:20.319
is going to be created or modified the

01:05:20.319 --> 01:05:24.079
after snapshot has to have these tags uh

01:05:24.079 --> 01:05:26.799
these particular keys and then per key

01:05:26.799 --> 01:05:28.480
which are the valid values. So if you

01:05:28.480 --> 01:05:31.520
use a if you make a typo in your if in

01:05:31.520 --> 01:05:33.440
your value it will highlight it. It says

01:05:33.440 --> 01:05:35.280
that's not a valid you know using value

01:05:35.280 --> 01:05:37.359
list like this reference key. It's

01:05:37.359 --> 01:05:38.799
called a reference list right you have

01:05:38.799 --> 01:05:40.160
this key has this value list.

01:05:40.160 --> 01:05:40.720
>> Yeah I can

01:05:40.720 --> 01:05:42.799
>> um so we use opa for that with because

01:05:42.799 --> 01:05:44.480
it helps with like

01:05:44.480 --> 01:05:46.799
>> incident escalation cost.

01:05:46.799 --> 01:05:49.119
>> I think I've seen as much before.

01:05:49.119 --> 01:05:50.960
>> Okay. Sorry I need to take my kids to

01:05:50.960 --> 01:05:53.520
school. We're out of time.

01:05:53.520 --> 01:05:56.000
We're out of time.

01:05:56.000 --> 01:05:58.400
>> Yeah. So you can do tags. Um, and you

01:05:58.400 --> 01:05:59.359
can do opa.

01:05:59.359 --> 01:06:00.640
>> Well, if you can think of anything else,

01:06:00.640 --> 01:06:02.480
just let me know. I I need that's the

01:06:02.480 --> 01:06:05.680
that's the thing I need to do today. Uh,

01:06:05.680 --> 01:06:07.359
I mean, I'm a I'm a big fan of like the

01:06:07.359 --> 01:06:09.200
whole bill of material thing. Like I

01:06:09.200 --> 01:06:10.799
don't I don't feel that's done enough in

01:06:10.799 --> 01:06:12.799
our industry to say like these these and

01:06:12.799 --> 01:06:14.880
these and these things are deployed.

01:06:14.880 --> 01:06:17.280
>> But yeah, the problem is there's so many

01:06:17.280 --> 01:06:18.799
it doesn't make a lot of sense. You need

01:06:18.799 --> 01:06:19.200
you need

01:06:19.200 --> 01:06:22.160
>> I was going to say with AWS CDK that

01:06:22.160 --> 01:06:24.799
lives in your Python requirements.txt or

01:06:24.799 --> 01:06:27.200
in your package.json, right? which are

01:06:27.200 --> 01:06:28.880
the constructs that you depend on, but

01:06:28.880 --> 01:06:30.480
it doesn't really mean that they're

01:06:30.480 --> 01:06:32.559
being the ones invoked into the code and

01:06:32.559 --> 01:06:34.000
>> Exactly. Exactly.

01:06:34.000 --> 01:06:34.720
>> Right.

01:06:34.720 --> 01:06:37.680
>> Yeah. So like like uh I I'll I'll get

01:06:37.680 --> 01:06:40.160
into it in another time. Okay. Thanks.

01:06:40.160 --> 01:06:44.079
See you. See you, Vincent. Cheers.

