Meeting Title: AI Platform - Linear - Slack Automation Work Session Date: 2026-01-28 Meeting participants: Gabriel Lam, Samuel Roberts


WEBVTT

1 00:00:23.150 00:00:24.600 Samuel Roberts: Ayy.

2 00:00:25.520 00:00:26.500 Gabriel Lam: Hey, how’s it going?

3 00:00:26.820 00:00:30.030 Samuel Roberts: Alright, let a… Context switching today, but…

4 00:00:30.030 00:00:39.309 Gabriel Lam: No worries. Yeah, I feel like I also sort of played into that a little bit with this whole thing.

5 00:00:39.840 00:00:50.680 Samuel Roberts: No, no, you’re good, you’re good. Honestly, this is the point, like, I need to be, like, you know, I was doing some deep work on Lilo for a few days, which was nice, but now it’s like, I gotta bounce around a little bit, and I gotta get better about that. Anyway, so…

6 00:00:50.680 00:01:00.079 Gabriel Lam: Okay, yeah, well, I… hope this isn’t going to drag you around too far. I also know you just.

7 00:01:00.080 00:01:03.410 Samuel Roberts: This is the cool stuff, too, like, don’t worry, this is always…

8 00:01:03.410 00:01:04.310 Gabriel Lam: Okay, okay

9 00:01:05.220 00:01:12.579 Gabriel Lam: Yeah. Basically, wanted to do, like, a bit of a work session slash architect with you a little bit.

10 00:01:12.880 00:01:15.810 Gabriel Lam: I…

11 00:01:16.520 00:01:34.300 Gabriel Lam: don’t know how helpful the looms or the PR was. I think the more I look into it, I’m like, this is actually kind of hard to read, nor do I think there’s, like, a way for, like, a sort of standard, you know, like, process for doing a loom, so I just, like, ask her to make one.

12 00:01:34.520 00:01:35.189 Gabriel Lam: And I, like.

13 00:01:35.190 00:01:35.790 Samuel Roberts: Yeah.

14 00:01:36.670 00:01:37.450 Samuel Roberts: They’re good.

15 00:01:37.910 00:01:43.880 Gabriel Lam: So, yeah, I think based on what we… I’ve done so far.

16 00:01:44.440 00:01:51.050 Gabriel Lam: first of all, happy to scrap it, because this, like, POC isn’t… Really even working at all.

17 00:01:51.310 00:01:51.790 Samuel Roberts: Okay.

18 00:01:52.930 00:02:02.659 Gabriel Lam: But so far, the process has been to… and let me just bring up the PRD again, just because I do… I do think it’s helpful, just maybe not to the…

19 00:02:03.270 00:02:09.569 Gabriel Lam: I think in implementation, it sort of is struggling, so let me.

20 00:02:09.570 00:02:15.140 Samuel Roberts: Yeah, I mean, that’s definitely… I think, yeah, the PRD was not… not bad by any means. I’m just… I think it was a,

21 00:02:15.740 00:02:28.759 Samuel Roberts: we probably need to put a little more stuff about how… like, because I saw there’s, like, a lot of files in, like, one directory and stuff, and I was just like, I might even try my fault with some of this, so I think we can probably improve this in a way that we can maybe pass it back to cursor and let it…

22 00:02:29.510 00:02:30.559 Samuel Roberts: Let it run.

23 00:02:31.070 00:02:32.450 Samuel Roberts: Okay, let’s keep going.

24 00:02:32.650 00:02:36.590 Gabriel Lam: Yeah, yeah, yeah. So… There seems to be…

25 00:02:37.150 00:02:39.910 Gabriel Lam: the way that I think we’ve been approaching it.

26 00:02:40.450 00:02:46.360 Gabriel Lam: I’ve been thinking of approaching it is to take what we already have, in Superbase.

27 00:02:46.870 00:02:51.069 Gabriel Lam: As a way for us to, like, ingest meetings.

28 00:02:52.280 00:02:58.730 Gabriel Lam: The thing that has been difficult, first of all, has been this linear ticket generations.

29 00:02:58.990 00:03:02.819 Gabriel Lam: Where, currently, if, you know, we go into Superbase.

30 00:03:03.760 00:03:08.440 Gabriel Lam: These are sort of what Mustafa had made and been able to achieve.

31 00:03:08.970 00:03:14.050 Gabriel Lam: Where, you know, if we, like, just take a look at the latest.

32 00:03:14.590 00:03:20.359 Samuel Roberts: And this is what gets displayed on that linear ticket. This is what gets displayed on the generate linear tickets, like…

33 00:03:20.560 00:03:24.949 Gabriel Lam: section, that header, right… right here.

34 00:03:26.100 00:03:35.959 Gabriel Lam: So, if it is able to create it, then it gets displayed right here, it goes into Superbase… or sorry, it goes into Superbase and then gets displayed right there. If it’s not able to make it.

35 00:03:36.360 00:03:39.890 Gabriel Lam: So, you know, I tried with some tests yesterday night.

36 00:03:43.080 00:03:58.430 Gabriel Lam: And if there’s ever an error where something happens, like, it just won’t go into Superbase. And so I think the difficulty there, first of all, is with, like, testing, and I don’t know if there’s, like, a better way to do it. Is it better to circumvent

37 00:03:58.630 00:04:03.020 Gabriel Lam: This table, and then to go…

38 00:04:03.430 00:04:06.320 Gabriel Lam: You know, directly from the transcripts themselves.

39 00:04:06.530 00:04:08.310 Gabriel Lam: That’s something that I was thinking of.

40 00:04:09.480 00:04:14.720 Gabriel Lam: So that’s sort of the flow. Currently, I was also thinking of using…

41 00:04:15.790 00:04:21.620 Gabriel Lam: sort of a Slack bot, which currently is… if I share…

42 00:04:23.670 00:04:30.300 Gabriel Lam: that, was just, like, something I call Ticket Reviewer. This is… this can also change, but sort of, like.

43 00:04:31.130 00:04:39.030 Gabriel Lam: Either, you know, You… after a meeting is ingested, and I think what has been really good is…

44 00:04:39.220 00:04:43.189 Gabriel Lam: in this channel, we see, like, hey, Zoom summarizer, like, this meeting is there.

45 00:04:43.400 00:04:47.190 Gabriel Lam: And I think some sort of tickets or some meetings, like.

46 00:04:47.780 00:04:51.800 Gabriel Lam: should have some privacy, and so I was thinking, like, hey, if you have an app.

47 00:04:52.100 00:04:54.440 Gabriel Lam: Then it’ll go to the right person.

48 00:04:54.960 00:04:59.350 Gabriel Lam: There’s always a fallback, which is, like, maybe, you know, the… the…

49 00:04:59.640 00:05:04.670 Gabriel Lam: the highest level person in a meeting, or right now it’s just, like, probably me, or Utam, or you.

50 00:05:04.910 00:05:14.900 Gabriel Lam: I’ve just put myself, just so I’m like, okay, if there’s a reviewer, maybe there’s a ticket coming in, then someone will at least see it. So the goal is, like, okay, it pops out here, and then there’s…

51 00:05:15.470 00:05:17.100 Gabriel Lam: Sort of buttons.

52 00:05:17.830 00:05:19.929 Gabriel Lam: Similar to…

53 00:05:20.610 00:05:30.400 Gabriel Lam: I think if you notice here, with… I think Casey had made the assumed before, but you’d, like, have a yes, no, or, like, reassigned to someone else kind of thing, like, sort of very simple…

54 00:05:30.840 00:05:31.890 Gabriel Lam: UX.

55 00:05:32.190 00:05:35.190 Gabriel Lam: To either appro… approve, or…

56 00:05:35.490 00:05:40.580 Gabriel Lam: Or reject or reassign tickets. So that’s sort of the flow that I was thinking of.

57 00:05:41.900 00:05:48.160 Gabriel Lam: Let me reshare back to… Chrome.

58 00:05:50.110 00:05:51.490 Gabriel Lam: And here.

59 00:05:51.740 00:05:56.340 Gabriel Lam: So, one of the things that I feel like I don’t want to just, sort of.

60 00:05:57.410 00:06:03.879 Gabriel Lam: reinvent the wheel, was like, okay, how can we take what exists here, and then…

61 00:06:05.190 00:06:10.400 Gabriel Lam: Bring it into linear, but take additional context.

62 00:06:10.530 00:06:16.790 Gabriel Lam: And so, my initial thought was, like, okay, are we able to use…

63 00:06:18.180 00:06:26.140 Gabriel Lam: cursor, and, like, directly call it through an MCP, and the good thing about cursor is, like, hey, I could, you know, I could directly call

64 00:06:26.470 00:06:29.989 Gabriel Lam: If I go into, here, I could be like.

65 00:06:31.070 00:06:34.849 Gabriel Lam: the benefit of the MCP is I could… I just need to make sure I turned it on.

66 00:06:35.560 00:06:36.210 Samuel Roberts: Oh, yeah.

67 00:06:36.210 00:06:43.099 Gabriel Lam: is I could say, you know, with… whisper, like, hey.

68 00:06:43.560 00:06:52.260 Gabriel Lam: Based on the last meeting, can you give me all the tickets, and then… check with…

69 00:06:53.340 00:06:57.459 Gabriel Lam: Our client repos to make sure they’re up-to-date, and then attach them to the right tickets.

70 00:06:58.760 00:07:03.140 Gabriel Lam: And… oop, Whisper is not on right now.

71 00:07:04.420 00:07:08.619 Gabriel Lam: But it has been able to do something similar, where if I say, like, hey.

72 00:07:09.600 00:07:15.009 Gabriel Lam: You know, hey, can you list the most recent tickets from the most recent meeting?

73 00:07:16.090 00:07:27.050 Gabriel Lam: through… in the Supabase table, what is it? Linear ticket.

74 00:07:33.930 00:07:35.499 Gabriel Lam: I think that’s what it’s called.

75 00:07:40.080 00:07:42.019 Gabriel Lam: linear ticket generations.

76 00:07:43.320 00:07:46.309 Gabriel Lam: Oh, okay, well, my cursor has been limited.

77 00:07:46.310 00:07:51.630 Samuel Roberts: Yeah, turn off… just go to Auto or something for… instead of Opus, and it should let you go through, I think.

78 00:07:55.010 00:07:56.220 Samuel Roberts: Oh, no.

79 00:07:56.490 00:08:01.920 Gabriel Lam: I ended up with that, and I thought it was just… it was limiting me because I was trying to do Opus more, but maybe not.

80 00:08:02.080 00:08:02.770 Samuel Roberts: Huh.

81 00:08:03.140 00:08:05.780 Gabriel Lam: I will, bring it up to the team.

82 00:08:05.850 00:08:13.600 Samuel Roberts: Yeah, I thought it was just, like, limiting it for, like, expensive models, but… Huh.

83 00:08:18.900 00:08:24.069 Samuel Roberts: Okay, well… I mean, I don’t know if cursor is where we want to be doing this anyway…

84 00:08:24.590 00:08:32.430 Gabriel Lam: Yeah, that’s something that I was like, the benefit is the MCP and, like, context retrieval, but are… is there a better…

85 00:08:33.400 00:08:36.559 Gabriel Lam: way of fetching… context.

86 00:08:37.330 00:08:39.239 Samuel Roberts: Yeah, I mean, well, theoretically we could…

87 00:08:39.520 00:08:45.740 Samuel Roberts: you know, we could do the NCP on an agent, you know, somewhere else, so, like, it doesn’t need to be so manual in…

88 00:08:45.740 00:08:46.680 Gabriel Lam: Right.

89 00:08:46.850 00:08:49.600 Samuel Roberts: cursor, the way…

90 00:08:50.510 00:08:58.250 Samuel Roberts: the way that the current linear ticket generator is working, I think, is directly to the API, not with the MCP, but…

91 00:08:58.250 00:08:58.960 Gabriel Lam: It is.

92 00:08:59.540 00:09:05.120 Samuel Roberts: Yeah, but we could… modify that, I suppose?

93 00:09:05.820 00:09:08.329 Samuel Roberts: I mean, realistically, like, the linear…

94 00:09:09.030 00:09:16.929 Samuel Roberts: wait, the linear ticket generation table, or whatever, yeah. Yeah. It’s, these are just in Supabase, until they get…

95 00:09:17.220 00:09:18.230 Samuel Roberts: pushed, right?

96 00:09:18.230 00:09:22.429 Gabriel Lam: These are just in Supabase. I added a few columns.

97 00:09:22.430 00:09:24.159 Samuel Roberts: Thinking that it would, sort of.

98 00:09:24.160 00:09:29.710 Gabriel Lam: give additional context. Basically, they’re in this, like, pending state?

99 00:09:30.290 00:09:34.149 Gabriel Lam: And once they’re either approved or rejected, I don’t…

100 00:09:34.150 00:09:34.690 Samuel Roberts: Yeah.

101 00:09:34.690 00:09:35.389 Gabriel Lam: I think…

102 00:09:35.390 00:09:38.279 Samuel Roberts: You gotta go up to filter, I think. Oh, sorry, yeah, that works too.

103 00:09:38.280 00:09:40.900 Gabriel Lam: Yeah, either those are improved or declined, and then…

104 00:09:41.730 00:09:47.980 Gabriel Lam: Any, you know, any and every ticket exists here, it’s just whether they’re approved, declined, or pending.

105 00:09:48.160 00:09:50.469 Samuel Roberts: Right, okay. And… so…

106 00:09:50.470 00:09:51.430 Gabriel Lam: Yeah. Okay.

107 00:09:53.930 00:09:56.129 Gabriel Lam: So the goal is, like, are we able to…

108 00:09:57.000 00:10:03.050 Gabriel Lam: have, you know, an action instead of create be, like, update? Are we able to link it to linear?

109 00:10:03.420 00:10:16.110 Gabriel Lam: issue IDs, and then can the context also… include… Like, Slack context, or… or…

110 00:10:16.370 00:10:22.179 Gabriel Lam: Right. That’s where this might not be the best way to map it to, because this is going to have…

111 00:10:22.180 00:10:29.499 Samuel Roberts: its own… like… This is all for fresh tickets, right?

112 00:10:29.650 00:10:30.720 Samuel Roberts: So… Yes.

113 00:10:30.930 00:10:35.040 Samuel Roberts: if we want… I’m just trying to think through it, so if we… if we want to, say.

114 00:10:35.400 00:10:39.009 Samuel Roberts: Create an entry in this table that is just update.

115 00:10:40.950 00:10:43.070 Samuel Roberts: What needs to get populated there?

116 00:10:45.870 00:10:53.400 Samuel Roberts: Because, like, updating a ticket could just be, like, a comment on it, or a change to it.

117 00:10:53.510 00:10:58.119 Samuel Roberts: To the date, to the… Priority to the status.

118 00:10:59.450 00:11:00.580 Samuel Roberts: You know what I mean?

119 00:11:01.220 00:11:01.770 Gabriel Lam: Yeah.

120 00:11:01.770 00:11:08.229 Samuel Roberts: Like, the schema of this table might not match everything we want for, like, update, especially.

121 00:11:11.800 00:11:16.310 Samuel Roberts: So what if the ticket is just, like, adding some comments, you know what I mean?

122 00:11:16.310 00:11:28.520 Gabriel Lam: Yeah, I do think that… If we are updating tickets, it shouldn’t… Totally… rewrite the…

123 00:11:30.880 00:11:37.050 Gabriel Lam: description, or the title, per se. I do think there is a benefit to… having it…

124 00:11:38.560 00:11:44.110 Gabriel Lam: be a set of, like, comments on the activity level, so you can always sort of see

125 00:11:44.530 00:11:46.409 Gabriel Lam: The versioning of a ticket.

126 00:11:46.850 00:11:47.610 Samuel Roberts: Agreed.

127 00:11:47.950 00:11:51.919 Gabriel Lam: I also feel like, you know, if it’s got updated

128 00:11:52.960 00:11:58.940 Gabriel Lam: Like, if there’s an updated, you know, time, that could be the date that we parse in.

129 00:11:59.990 00:12:09.860 Samuel Roberts: Well, I’m wondering, do we want to think in, like, a different table format, maybe? Like, if we’re creating new tickets, and they need to be approved, then this is good.

130 00:12:10.070 00:12:15.560 Samuel Roberts: But if we’re gonna be pushing updates to Linear that are different than just pure ticket creation.

131 00:12:16.540 00:12:20.790 Samuel Roberts: does a different… Schema makes sense.

132 00:12:22.310 00:12:24.599 Samuel Roberts: Maybe not. Maybe there’s everything here we need.

133 00:12:30.810 00:12:33.389 Samuel Roberts: Like, I… hmm, alright, I’m just trying to think…

134 00:12:37.250 00:12:40.399 Samuel Roberts: if… Alright, let’s take a step back.

135 00:12:40.980 00:12:41.670 Samuel Roberts: Not a day.

136 00:12:42.120 00:12:45.639 Samuel Roberts: I think a bigger, a bigger… view of this.

137 00:12:46.660 00:12:50.830 Samuel Roberts: So, the, the goal… I’m gonna hold on, make my little notebook out of it, sorry.

138 00:12:51.070 00:12:53.069 Samuel Roberts: Visualizing some stuff, too. Okay.

139 00:12:54.100 00:12:55.899 Samuel Roberts: I should probably do this.

140 00:12:56.000 00:13:06.950 Samuel Roberts: up here somewhere on some sort of whiteboard, but I never like that as much, so I’m just gonna talk it through, and then if I need to share, I’ll take a picture or something, but… Yeah. Okay, so the top level here is that…

141 00:13:08.120 00:13:13.919 Samuel Roberts: After a meeting, We have a transcript, right?

142 00:13:15.290 00:13:16.890 Samuel Roberts: The meeting goes to transcript.

143 00:13:17.780 00:13:23.409 Samuel Roberts: Right now, here, actually, hold on. The way it currently works… I’m sorry, I just need to really, really talk it through.

144 00:13:23.410 00:13:23.730 Gabriel Lam: Yup.

145 00:13:23.730 00:13:29.450 Samuel Roberts: Meeting to transcript, to linear ticket, linear… Ticket.

146 00:13:29.610 00:13:32.130 Samuel Roberts: Gen 2 approval, right?

147 00:13:33.130 00:13:33.680 Gabriel Lam: Yep.

148 00:13:35.060 00:13:36.300 Samuel Roberts: But we won’t it between…

149 00:13:36.300 00:13:42.900 Gabriel Lam: In Gen 2 approval, there’s the, like, But… Either the ticket

150 00:13:44.410 00:13:51.480 Gabriel Lam: I think there’s the ticket from the transcript, And then there’s also… Slack context.

151 00:13:51.910 00:13:54.570 Gabriel Lam: And I’m trying to figure out, like, maybe not Slack content.

152 00:13:54.570 00:13:57.749 Samuel Roberts: I think other things feed into this besides the transcript, right?

153 00:13:57.750 00:14:04.109 Gabriel Lam: The goal… I think the goal is that, yeah, other things besides just the transcript feed into the ticket.

154 00:14:05.040 00:14:05.690 Samuel Roberts: Okay.

155 00:14:06.790 00:14:12.150 Samuel Roberts: So, what we want to do is, in addition to just Slack coming in, too.

156 00:14:13.420 00:14:19.059 Samuel Roberts: is also passing the current linear statuses, or state, I guess we’ll call it.

157 00:14:19.600 00:14:20.250 Gabriel Lam: Yeah.

158 00:14:21.760 00:14:28.670 Samuel Roberts: And that needs to go into the ticket generator, which is now generator slash updater. Okay, so then if we’re gonna say…

159 00:14:32.930 00:14:39.649 Samuel Roberts: So then, the output of this linear ticket generator right now is just fresh nerds, right?

160 00:14:39.880 00:14:41.999 Gabriel Lam: Yes. And those have a…

161 00:14:45.130 00:14:51.990 Samuel Roberts: title… Description… what else is in this table? Team ID, of course.

162 00:14:53.340 00:15:00.040 Samuel Roberts: Team name… Assignee.

163 00:15:05.200 00:15:11.190 Samuel Roberts: And then this is all stuff that goes into linear. Status here is not a linear status, right?

164 00:15:11.190 00:15:11.810 Gabriel Lam: No.

165 00:15:11.870 00:15:17.989 Samuel Roberts: Okay. That’s fine. Okay, so then what… if… if we’re gonna have… so that’s like a fresh…

166 00:15:18.340 00:15:22.930 Samuel Roberts: ticket. If we’re gonna have an updated ticket entry.

167 00:15:23.040 00:15:25.750 Samuel Roberts: what else do we need? We need, like, what…

168 00:15:27.240 00:15:31.889 Samuel Roberts: This is where I feel like just trying to map it onto what we currently have is maybe the wrong path.

169 00:15:34.440 00:15:40.939 Samuel Roberts: like… What we probably want to do is break open that linear ticket generator a little bit more.

170 00:15:41.770 00:15:46.419 Samuel Roberts: So rather than just relying on the output of it here.

171 00:15:48.670 00:15:51.880 Samuel Roberts: We actually want to go in… And say, like.

172 00:15:52.060 00:15:54.860 Samuel Roberts: Only create new tickets here if we haven’t

173 00:15:55.100 00:15:57.659 Samuel Roberts: don’t have a matching ticket bet. Like.

174 00:15:59.220 00:16:05.599 Samuel Roberts: And maybe this is how it was working, and I… and maybe this is how it was working, and I maybe didn’t follow, but, like…

175 00:16:06.700 00:16:08.399 Samuel Roberts: Create the ticket.

176 00:16:08.620 00:16:10.239 Samuel Roberts: It can do this path.

177 00:16:10.560 00:16:14.540 Samuel Roberts: When it wants to update, we need to have recurrent ticket, right?

178 00:16:16.420 00:16:18.699 Samuel Roberts: It’s gonna have a ton of context in there.

179 00:16:21.400 00:16:23.240 Samuel Roberts: It’s gonna have other comments.

180 00:16:26.030 00:16:28.919 Samuel Roberts: Alright, do me a quick favor, flip over to cursor.

181 00:16:28.920 00:16:29.450 Gabriel Lam: Yep.

182 00:16:39.840 00:16:44.730 Samuel Roberts: And then, no, you’re good here. Just click on… oh, go back to the MCP. That’s exactly what I wanted to see, sorry.

183 00:16:44.850 00:16:46.809 Samuel Roberts: And then click on the 25 tools.

184 00:16:47.000 00:16:50.319 Samuel Roberts: Alright, so we have… Create comment.

185 00:16:50.450 00:16:52.680 Samuel Roberts: List cycles, get documents, get… okay.

186 00:16:53.070 00:16:59.219 Samuel Roberts: So the comments are good there. So maybe that’s… maybe this is what… maybe we don’t need entries here if we’re just commenting on tickets.

187 00:17:04.890 00:17:05.790 Samuel Roberts: Does that…

188 00:17:14.220 00:17:25.530 Gabriel Lam: I guess the way I was thinking was, like, if… Would it be… Better if the split between

189 00:17:25.770 00:17:29.020 Gabriel Lam: Update and create ticket.

190 00:17:31.190 00:17:37.000 Gabriel Lam: I guess, like, the split between, like, create comment versus create… Issue?

191 00:17:37.150 00:17:42.540 Gabriel Lam: Or, I’m not sure, actually, if it’s document, or… I think it is issue.

192 00:17:42.850 00:17:43.890 Samuel Roberts: It’s probably an issue, yeah.

193 00:17:43.890 00:17:49.430 Gabriel Lam: Yeah, like, the split between create, comment, or create issue, happens…

194 00:17:50.180 00:17:54.820 Gabriel Lam: Before the generated, quote-unquote, tickets, or…

195 00:17:55.150 00:17:58.139 Gabriel Lam: After they get ticketed and then sorted.

196 00:17:58.500 00:18:01.469 Samuel Roberts: Yeah, I think we… I think we probably want to do it earlier.

197 00:18:02.110 00:18:02.980 Gabriel Lam: Okay.

198 00:18:03.290 00:18:07.519 Samuel Roberts: Because… What it… what this can do, then, like…

199 00:18:07.940 00:18:13.710 Samuel Roberts: If the idea is, okay, we have a transcript, we have a bunch of Slack messages over the last however many, 24 hours.

200 00:18:13.940 00:18:14.460 Gabriel Lam: Yep.

201 00:18:14.460 00:18:18.239 Samuel Roberts: We then also pull in the linear tickets for… and we assume that we know

202 00:18:18.820 00:18:26.000 Samuel Roberts: what part of the transcript relates to the project, and all this other stuff, like what client, and all that jazz. So, we have inputs of Slack messages.

203 00:18:26.490 00:18:29.909 Samuel Roberts: Meeting transcripts, and current linear tickets.

204 00:18:30.190 00:18:30.740 Gabriel Lam: Yep.

205 00:18:31.280 00:18:32.979 Samuel Roberts: So then the output of that

206 00:18:33.930 00:18:37.349 Samuel Roberts: Should be potentially new linear tickets?

207 00:18:38.670 00:18:44.169 Samuel Roberts: and then a series of updates to the old linear tickets. And those are kind of, like, two distinct things in my mind.

208 00:18:44.820 00:18:45.570 Gabriel Lam: Okay.

209 00:18:45.570 00:18:48.010 Samuel Roberts: Like, click, hover over Create Comment real quick.

210 00:18:49.700 00:18:57.069 Samuel Roberts: So, the parameters here, we got the issue ID, the parent, and then the body. Is there anything else? Is that just cut off because it’s the full thing?

211 00:18:57.070 00:18:58.820 Gabriel Lam: That’s it. It’s just those three.

212 00:18:58.820 00:19:03.769 Samuel Roberts: That makes sense, that’s good. And then if we go to create issue… There’s so much more.

213 00:19:03.770 00:19:04.260 Gabriel Lam: Yeah.

214 00:19:04.260 00:19:05.710 Samuel Roberts: So, that’s where I think, like.

215 00:19:05.940 00:19:08.469 Samuel Roberts: Trying to map them to the same table is a bad idea.

216 00:19:08.470 00:19:09.280 Gabriel Lam: I see.

217 00:19:09.610 00:19:13.330 Gabriel Lam: I guess my question there would be, like…

218 00:19:13.510 00:19:18.820 Gabriel Lam: How do you make sure that the two outputs don’t overlap or duplicate?

219 00:19:19.010 00:19:23.559 Samuel Roberts: Well, that’s why I think there’s… we gotta think about, like, some piece of this,

220 00:19:24.710 00:19:28.179 Samuel Roberts: What did you call it before the engine? The,

221 00:19:29.900 00:19:35.680 Samuel Roberts: I’m blanking on words here, because my brain is starting to, like, bleed together all these other things. The, like.

222 00:19:35.830 00:19:37.529 Samuel Roberts: Comparative Engine or whatever.

223 00:19:37.530 00:19:38.970 Gabriel Lam: Or, like, cross-referencing.

224 00:19:38.970 00:19:46.479 Samuel Roberts: Yeah, yeah, I think what we want to say is, okay, they discussed this issue. Is there a linear ticket covering that issue?

225 00:19:47.410 00:19:59.109 Samuel Roberts: If there is, I want to go down this other branch, which is updating the status, or adding a comment, or reassigning, or anything like that. That could be update issue, right?

226 00:19:59.110 00:19:59.700 Gabriel Lam: Yep.

227 00:20:00.660 00:20:03.140 Samuel Roberts: If there’s nothing covering it.

228 00:20:03.570 00:20:10.309 Samuel Roberts: then I want to potentially run create issue, which is really, in our case, adding an entry to that table.

229 00:20:10.310 00:20:11.050 Gabriel Lam: For now. Yeah.

230 00:20:11.860 00:20:16.110 Samuel Roberts: But the, like, the… the…

231 00:20:18.060 00:20:22.619 Samuel Roberts: Yeah, so, okay. I think… and if we’re drawing, like, a flow diagram, right?

232 00:20:24.220 00:20:33.189 Samuel Roberts: And I’m gonna do this in words instead of actually doing it out, because… you know what, let’s do it, let’s do it out, whatever. How… what is your… what time are we at? We’re kind of almost at time. Do you have more time?

233 00:20:33.190 00:20:40.899 Gabriel Lam: I have time till… 3, and then I’m… from 3 to 3.30, and then I’m free after 3.

234 00:20:40.900 00:20:41.750 Samuel Roberts: Okay.

235 00:20:41.920 00:20:48.880 Samuel Roberts: Okay, so I’ll have 20 minutes, and then… Okay. I’m just thinking, like, I think the way to think about it, maybe, now that we’ve seen…

236 00:20:49.140 00:20:58.449 Samuel Roberts: How this might work, or not work, or whatever issues we’re having, is gonna be… Passing into the agent.

237 00:21:00.430 00:21:01.130 Samuel Roberts: Hmm.

238 00:21:01.360 00:21:02.780 Samuel Roberts: all the context.

239 00:21:03.870 00:21:10.460 Samuel Roberts: And then what it needs to do is identify which tickets are relevant and which tickets are not, or which…

240 00:21:11.400 00:21:12.600 Samuel Roberts: How do I think about this?

241 00:21:13.320 00:21:15.939 Samuel Roberts: Alright, so we have tickets, which they’re calling issues, right?

242 00:21:15.940 00:21:16.530 Gabriel Lam: Yep.

243 00:21:16.890 00:21:20.390 Samuel Roberts: So, we’ll call… we’ll call them ticket. Oh, I don’t know.

244 00:21:21.140 00:21:21.459 Gabriel Lam: We can call.

245 00:21:21.460 00:21:26.169 Samuel Roberts: There are gonna be things discussed in the meeting that are just, like, more abstract, right?

246 00:21:26.170 00:21:26.770 Gabriel Lam: Yup.

247 00:21:27.490 00:21:30.679 Samuel Roberts: That needs to get distilled into a list of, like.

248 00:21:32.580 00:21:34.520 Samuel Roberts: I don’t want to say issues, but like…

249 00:21:35.190 00:21:36.790 Samuel Roberts: Tasks that have to happen or something?

250 00:21:36.790 00:21:37.440 Gabriel Lam: Yup.

251 00:21:38.050 00:21:42.049 Samuel Roberts: That’s, like, distinct from the current list of Lanier tickets, and…

252 00:21:43.430 00:21:45.899 Samuel Roberts: Overlaps with it in certain ways.

253 00:21:45.900 00:21:50.820 Gabriel Lam: Right, so it’s like… I think it does start from the transcript, where…

254 00:21:50.820 00:21:51.460 Samuel Roberts: Yeah.

255 00:21:52.180 00:21:58.440 Gabriel Lam: You sort of parse the transcript, And then extract, like, Action items…

256 00:21:59.020 00:22:00.790 Samuel Roberts: Yeah, yeah, exactly, okay.

257 00:22:00.790 00:22:03.430 Gabriel Lam: And then action items have…

258 00:22:04.230 00:22:07.500 Gabriel Lam: Like, a sort of similarity score?

259 00:22:07.710 00:22:08.530 Gabriel Lam: to…

260 00:22:09.430 00:22:10.670 Gabriel Lam: Existing tickets?

261 00:22:12.000 00:22:17.319 Samuel Roberts: Yes, and if something… if no ticket matches well enough.

262 00:22:18.440 00:22:19.240 Gabriel Lam: Then it’s created.

263 00:22:19.240 00:22:35.709 Samuel Roberts: creating a new… yes. Otherwise, it goes down the path of saying, okay, what is different from here? What was discussed? Do I make a comment? Do I make a change of assignment? Do I make a change of status? Do I make a change of date? And that might be where we just give it kind of the MCP and say, like.

264 00:22:38.370 00:22:42.270 Samuel Roberts: do it, rather than, like, make a fresh API call every time, you know?

265 00:22:44.650 00:22:49.240 Samuel Roberts: But if it doesn’t match, then maybe it just does the… well, here are my suggested tickets to create.

266 00:22:52.380 00:22:53.130 Gabriel Lam: Right.

267 00:22:54.480 00:23:00.680 Samuel Roberts: But I think the flow of, like, okay, I have a linear ticket, I have all this context of the actual, you know.

268 00:23:01.670 00:23:06.909 Samuel Roberts: Issue, or action item, What is different here?

269 00:23:07.280 00:23:09.840 Samuel Roberts: Is a different flow than that table gives us.

270 00:23:10.430 00:23:11.100 Gabriel Lam: Right.

271 00:23:16.460 00:23:23.050 Samuel Roberts: So really, I think what we want to do is just kind of tap into that Linear ticket generator?

272 00:23:23.270 00:23:29.890 Samuel Roberts: And… and have some kind of, like, statement, or… or logic, or suggestion. I’m not exactly sure where the…

273 00:23:30.300 00:23:32.540 Samuel Roberts: Code is and all that,

274 00:23:33.280 00:23:36.000 Samuel Roberts: But basically, like, the output of…

275 00:23:37.130 00:23:43.300 Samuel Roberts: Part of that should redirect to something that’s gonna do the change updates, rather than the create tickets.

276 00:23:43.780 00:23:44.450 Gabriel Lam: Right.

277 00:23:45.590 00:23:50.130 Samuel Roberts: which may or may not need approvals, you know, whatever, however we want to do all that UI-wise, but…

278 00:23:51.770 00:23:53.640 Samuel Roberts: I think those are, like, two different…

279 00:23:53.780 00:23:55.840 Samuel Roberts: Paths that it needs to go down.

280 00:23:55.940 00:23:59.880 Samuel Roberts: One of which is, like, kind of already done, which is this, like, fresh tickets.

281 00:24:00.240 00:24:00.600 Gabriel Lam: Yep.

282 00:24:01.160 00:24:07.440 Samuel Roberts: The other side is what you’re trying to do, and I’m not sure where exactly that needs to tap into the code. So maybe I’ll dig into the code real quick.

283 00:24:09.340 00:24:14.060 Samuel Roberts: This is happening… do you know which files I should look at specifically offhand in the…

284 00:24:15.500 00:24:18.250 Samuel Roberts: Actually, I might have to date here. I think…

285 00:24:18.610 00:24:20.150 Gabriel Lam: there’s this.

286 00:24:20.480 00:24:27.450 Gabriel Lam: linear ticket generation, there’s the linear…

287 00:24:27.720 00:24:31.529 Gabriel Lam: Let me… I think the PR is probably a lot better of a place to…

288 00:24:31.890 00:24:34.679 Samuel Roberts: Oh, that’s probably true too, you’re right, you’re right, it has all that in there.

289 00:24:40.540 00:24:41.910 Samuel Roberts: I am behind…

290 00:24:57.830 00:24:58.560 Samuel Roberts: Okay.

291 00:24:58.690 00:24:59.880 Samuel Roberts: Sorry, one sec.

292 00:25:00.920 00:25:01.790 Samuel Roberts: Yeah, so this…

293 00:25:01.790 00:25:03.230 Gabriel Lam: So this is for Slack.

294 00:25:03.660 00:25:09.330 Gabriel Lam: webhook. I think this is for creating the cross-referencing.

295 00:25:09.570 00:25:11.700 Samuel Roberts: Yes, okay, so let’s look at this then.

296 00:25:12.030 00:25:13.880 Samuel Roberts: So this is looking at saved tickets.

297 00:25:14.500 00:25:17.409 Samuel Roberts: Get the team ID, build action items for Crawford, right?

298 00:25:21.400 00:25:26.080 Samuel Roberts: Alright, but this is still pulling from the database. I think we need to rethink about how we want to do that. Yeah. You know?

299 00:25:26.190 00:25:28.650 Gabriel Lam: Yeah. I think Go… what is this…

300 00:25:29.670 00:25:34.730 Samuel Roberts: I gotta figure out where… the… okay, so, which… in… sorry.

301 00:25:35.210 00:25:37.710 Samuel Roberts: in… Come on.

302 00:25:39.410 00:25:40.230 Samuel Roberts: What the heck?

303 00:25:41.650 00:25:42.310 Samuel Roberts: There you go.

304 00:25:42.580 00:25:47.490 Samuel Roberts: In source… what’s the one that we think is actually doing the ticket generation?

305 00:25:48.200 00:25:50.170 Gabriel Lam: It’s… Source.

306 00:25:50.170 00:25:50.980 Samuel Roberts: rib.

307 00:25:50.980 00:25:56.159 Gabriel Lam: lib… linear ticket generator. Like, linear ticket generation.

308 00:25:56.760 00:26:01.169 Samuel Roberts: Got it, okay. So in here, let me just read through this real quick. I got it open, too, so I can…

309 00:26:01.900 00:26:03.390 Gabriel Lam: Compress the transcript…

310 00:26:03.390 00:26:09.130 Samuel Roberts: Parse the participants, that’s great, okay. Match participants to linear users, where is that being called?

311 00:26:09.810 00:26:12.100 Samuel Roberts: Oh, no, hold on, where is that being called?

312 00:26:19.470 00:26:23.780 Samuel Roberts: Wait, we’re exporting that function, but we’re not using it anymore? No, we are using it, there it is, okay.

313 00:26:24.700 00:26:27.700 Samuel Roberts: Tickets generate meeting created.

314 00:26:31.960 00:26:33.669 Samuel Roberts: Generate tickets async.

315 00:26:38.090 00:26:44.939 Samuel Roberts: Okay, so I am in… Source, app, API, webhook, Superbase, meeting created.

316 00:26:47.290 00:26:47.700 Gabriel Lam: Yes.

317 00:26:47.700 00:26:53.609 Samuel Roberts: Okay. So that is where I see it says it fetches the linear users, it matches them.

318 00:26:53.950 00:27:02.240 Samuel Roberts: It calculates the common teams, that’s where you’re getting that error, I guess, where if it…

319 00:27:02.770 00:27:04.219 Samuel Roberts: Yeah, let me share my screen, maybe.

320 00:27:04.220 00:27:04.850 Gabriel Lam: Sure.

321 00:27:07.620 00:27:09.960 Samuel Roberts: What are I wearing here? Oh, yeah, okay.

322 00:27:13.160 00:27:17.000 Samuel Roberts: Okay, so in… In this webhook.

323 00:27:20.160 00:27:26.759 Samuel Roberts: So, this function… It seems to actually be what’s doing the ticket generation.

324 00:27:27.990 00:27:31.699 Samuel Roberts: So it… I don’t know if you looked at this already or not, but it fetches the linear users.

325 00:27:32.190 00:27:33.840 Samuel Roberts: It matches them.

326 00:27:34.490 00:27:38.950 Samuel Roberts: Calculates the common teams. This is where it’s probably doing that thing where it’s…

327 00:27:39.280 00:27:39.940 Gabriel Lam: Yep.

328 00:27:39.940 00:27:41.480 Samuel Roberts: No comment teams found.

329 00:27:41.730 00:27:45.789 Samuel Roberts: If it does, it parses action items from summary…

330 00:27:46.790 00:27:49.589 Samuel Roberts: And then we use the ticket generator agent.

331 00:27:51.370 00:27:52.890 Samuel Roberts: And then…

332 00:27:54.370 00:27:59.569 Samuel Roberts: That’s the latest instructions from LangFuse. Okay, so this is probably where we want to tap into here and say.

333 00:28:00.060 00:28:00.900 Samuel Roberts: you know.

334 00:28:03.330 00:28:08.479 Samuel Roberts: all this is… this is not looking at linear at all. Nothing here touches linear, except to look up…

335 00:28:08.770 00:28:10.060 Samuel Roberts: users.

336 00:28:10.060 00:28:10.690 Gabriel Lam: Yup.

337 00:28:11.030 00:28:18.020 Samuel Roberts: But what we want to do, potentially, is… Common teams…

338 00:28:18.470 00:28:23.400 Samuel Roberts: possible teams that it can be assigned. We probably need to restructure this whole agent here.

339 00:28:31.070 00:28:37.000 Samuel Roberts: And it grooms it, yeah. Okay, so what we probably want here is… Oh, God.

340 00:28:38.310 00:28:40.199 Samuel Roberts: So this is taking a meeting ID,

341 00:28:41.400 00:28:47.340 Samuel Roberts: This is taking participants, the compressed… Transcript was just passed in.

342 00:28:48.490 00:28:56.580 Samuel Roberts: And what we probably want to do, then, is this prompt is getting passed into the linear ticket generator agent, which is the master get ticket generator agent.

343 00:28:57.310 00:29:03.660 Samuel Roberts: Which we will look for in… Here, okay.

344 00:29:06.040 00:29:13.600 Samuel Roberts: So maybe this is where we want to be a little more, like… Tap into this.

345 00:29:13.760 00:29:14.320 Gabriel Lam: Yep.

346 00:29:17.110 00:29:22.240 Samuel Roberts: So, maybe what we want to do here is, instead of using the linear ticket agent.

347 00:29:24.320 00:29:26.260 Samuel Roberts: Well, there’s two ways to go about this.

348 00:29:26.390 00:29:28.640 Samuel Roberts: Not two. There’s two ways I can think of right now.

349 00:29:28.810 00:29:29.790 Samuel Roberts: One.

350 00:29:29.950 00:29:46.430 Samuel Roberts: we run all this, and before we write things to the database, we say, okay, that’s what you just think the new ticket should be, but here’s the tickets we actually have, then do the cross-reference, only create the ones that don’t match. Otherwise, go to another agent that figures out how to update them.

351 00:29:48.600 00:29:49.550 Samuel Roberts: Right.

352 00:29:49.550 00:29:50.150 Gabriel Lam: Yep.

353 00:29:50.630 00:30:00.699 Samuel Roberts: Or, we say, okay, before we get to the ticket generator, we… Have another step that takes in…

354 00:30:01.600 00:30:03.780 Samuel Roberts: The linear tickets for a given team.

355 00:30:04.700 00:30:07.330 Samuel Roberts: Or… whatever we call them back here.

356 00:30:08.180 00:30:10.790 Samuel Roberts: Common teams, yeah.

357 00:30:11.190 00:30:15.639 Samuel Roberts: And then says, okay, Go through these.

358 00:30:16.010 00:30:18.470 Samuel Roberts: Linear tickets and everything you have.

359 00:30:18.830 00:30:25.649 Samuel Roberts: figure out… What is not covered, make new tickets for that, send that to another place, another agent maybe.

360 00:30:25.820 00:30:29.690 Samuel Roberts: And then for the new ones, reroute to the… Update.

361 00:30:30.930 00:30:33.859 Samuel Roberts: I don’t know if either of those is better than the other one, but…

362 00:30:41.430 00:30:42.960 Gabriel Lam: I’m also thinking, like, where does.

363 00:30:42.960 00:30:43.580 Samuel Roberts: No, go ahead, yeah.

364 00:30:43.580 00:30:48.449 Gabriel Lam: Additional con- where is it easiest for additional context to slot in?

365 00:30:48.890 00:30:50.380 Samuel Roberts: Right, part of me is like.

366 00:30:51.500 00:30:54.580 Samuel Roberts: I don’t… I think we might even have to restructure this whole thing a little bit.

367 00:30:54.580 00:30:55.430 Gabriel Lam: Hmm.

368 00:30:55.430 00:30:58.610 Samuel Roberts: Cause this is, like… Here’s the meeting ID.

369 00:31:00.110 00:31:03.830 Samuel Roberts: It then is gonna generate an array of tickets.

370 00:31:04.450 00:31:10.150 Samuel Roberts: using these team IDs and the titles and descriptions and assignees. So maybe we say.

371 00:31:11.870 00:31:15.130 Samuel Roberts: Okay, the low effort is…

372 00:31:15.790 00:31:20.540 Samuel Roberts: Here are the current linear tickets. Do not create them if they need to be updated.

373 00:31:20.690 00:31:23.679 Samuel Roberts: do something else, just in this prompt here.

374 00:31:27.800 00:31:33.500 Samuel Roberts: That’s a little, you know… so much of this stuff is, like, balancing the determinism of this stuff, where, like.

375 00:31:33.500 00:31:34.200 Gabriel Lam: Yeah.

376 00:31:34.510 00:31:39.479 Samuel Roberts: We need to make sure it does the right thing, but it also needs the freedom to figure things out.

377 00:31:39.610 00:31:40.610 Samuel Roberts: So… Yep.

378 00:31:42.280 00:31:50.530 Samuel Roberts: My thought is… we restructure this agent, maybe? The other side of this is…

379 00:31:54.040 00:31:58.339 Samuel Roberts: I mentioned we could just do a router, so it could have different agents that it needs to call?

380 00:31:59.600 00:32:07.020 Samuel Roberts: So, the idea is, like, Something takes in the transcript, the Slack…

381 00:32:08.630 00:32:10.339 Samuel Roberts: And a bunch of linear tickets.

382 00:32:11.050 00:32:15.510 Samuel Roberts: And then the output of that is something that’s like, okay.

383 00:32:15.820 00:32:20.910 Samuel Roberts: You know, just like a new ticket, new ticket, new ticket, update ticket, update ticket, new ticket, update ticket.

384 00:32:21.070 00:32:22.709 Samuel Roberts: kind of… router.

385 00:32:24.110 00:32:24.560 Gabriel Lam: Yep.

386 00:32:24.560 00:32:27.779 Samuel Roberts: And then for the new ones, it’ll just literally run this.

387 00:32:28.370 00:32:30.640 Samuel Roberts: And for the update ones, we have a new agent.

388 00:32:31.850 00:32:32.440 Gabriel Lam: Yep.

389 00:32:33.150 00:32:36.449 Samuel Roberts: That might be the… the best structure here.

390 00:32:37.070 00:32:40.970 Samuel Roberts: I don’t really know until we’ve started testing it out.

391 00:32:45.770 00:32:48.179 Samuel Roberts: enrich the tickets. So these tickets get…

392 00:32:49.780 00:32:53.459 Samuel Roberts: Called here, so we generate the tickets.

393 00:32:56.100 00:32:59.869 Samuel Roberts: But that is not enriched yet? We then enrich it?

394 00:32:59.870 00:33:02.829 Gabriel Lam: I don’t think we have, really, a groomer.

395 00:33:03.380 00:33:05.239 Samuel Roberts: No, I know, but this is just enriching them, so…

396 00:33:05.240 00:33:05.570 Gabriel Lam: Oh, yeah.

397 00:33:05.570 00:33:09.120 Samuel Roberts: That’s adding other… context? Like, what…

398 00:33:11.170 00:33:14.449 Samuel Roberts: I’m just trying to understand the steps here. The groomer is down here, which is, like…

399 00:33:15.460 00:33:16.630 Samuel Roberts: I don’t even know.

400 00:33:18.250 00:33:19.730 Samuel Roberts: Take it to my agent.

401 00:33:22.400 00:33:27.059 Samuel Roberts: So that is sort of being groomed, but I don’t know what it’s being groomed against. It’s all in length views, which is…

402 00:33:28.370 00:33:33.060 Samuel Roberts: annoying, because now I can’t see the prompt that it’s even using, but.

403 00:33:33.400 00:33:35.390 Gabriel Lam: I also feel like there might be…

404 00:33:35.740 00:33:38.690 Gabriel Lam: It might be worth taking it off live music.

405 00:33:38.690 00:33:43.100 Samuel Roberts: I would… yeah, if you support that, I support that.

406 00:33:43.240 00:33:50.759 Samuel Roberts: I… I think there’s benefit to having it in a place where people can change it, but if we’re all gonna be in Cloud Code and Cursor and everything, like…

407 00:33:51.280 00:33:55.220 Samuel Roberts: It’s just adding… especially for something like this, which is very technical already.

408 00:33:55.610 00:33:58.040 Samuel Roberts: Tweaking that’s not worth it, but…

409 00:33:58.500 00:34:01.510 Samuel Roberts: I fully support you pulling them into code, then.

410 00:34:01.760 00:34:07.320 Samuel Roberts: Even if they’re just, like, markdown files that we can more easily point to. Yeah. That would be fine.

411 00:34:09.389 00:34:12.979 Samuel Roberts: Okay, here’s… here’s an idea.

412 00:34:13.360 00:34:21.350 Samuel Roberts: Now that we’ve looked at some of this code, so we’ve got meeting created API webhook, maybe…

413 00:34:21.560 00:34:23.350 Samuel Roberts: Point cursor to this.

414 00:34:24.590 00:34:29.299 Samuel Roberts: maybe with the PRD, maybe with just a description of, like, what we’re looking for.

415 00:34:29.770 00:34:32.109 Samuel Roberts: And ask it how it might re-architect

416 00:34:32.600 00:34:35.870 Samuel Roberts: This ticket grooming agent, this ticket generator agent.

417 00:34:35.980 00:34:42.170 Samuel Roberts: we probably want a ticket updater agent. You know, I think that’s really what it comes down to, is we just need another agent here.

418 00:34:42.560 00:34:49.169 Samuel Roberts: And instead of it being… Straight through this, there’s some branch where it says…

419 00:34:52.550 00:34:54.300 Samuel Roberts: Update the ticket instead.

420 00:34:54.300 00:34:54.940 Gabriel Lam: Yeah.

421 00:34:56.090 00:34:56.679 Samuel Roberts: But…

422 00:34:57.640 00:35:04.590 Samuel Roberts: I don’t necessarily, without really digging in right now, know where that needs to go. My thought, initially, just…

423 00:35:11.360 00:35:14.890 Samuel Roberts: Generate ticket. So this is where it’s actually getting called here, right? Yeah.

424 00:35:20.190 00:35:27.419 Samuel Roberts: Yeah, I think the best plan of attack is to re… not redo this, but restructure this, so don’t lean on the superbase.

425 00:35:27.640 00:35:28.220 Gabriel Lam: Yeah.

426 00:35:28.740 00:35:34.740 Samuel Roberts: But… actually get into here, which I’m happy to help with more, like, this is a little… you know.

427 00:35:35.200 00:35:40.660 Samuel Roberts: in the weeds, more than just going right to Superbase. You know, we’re breaking open the black box kind of thing.

428 00:35:40.660 00:35:41.110 Gabriel Lam: Right.

429 00:35:41.750 00:35:44.410 Samuel Roberts: Which is fine, it’s just…

430 00:35:44.700 00:35:49.279 Samuel Roberts: we gotta figure out the best way to make that all work, which I think, yeah, if you point a cursor to this.

431 00:35:49.630 00:35:55.160 Samuel Roberts: maybe even highlight the generator agent, the enriching agent?

432 00:35:56.040 00:35:57.280 Samuel Roberts: And the groomer?

433 00:35:57.750 00:36:03.779 Samuel Roberts: There’s a ticket agent, A groomer agent? Where was the enriching one, though?

434 00:36:05.310 00:36:09.990 Samuel Roberts: Enrich. Groomer prompt. Oh, grooming is enrich? Oh, okay, never mind, then I misread that, thank you.

435 00:36:10.130 00:36:10.810 Samuel Roberts: My bad.

436 00:36:11.190 00:36:14.170 Samuel Roberts: I was looking at the word enrich, I didn’t even look at what the variable was.

437 00:36:18.280 00:36:21.489 Samuel Roberts: Okay, yeah, I think we want to take a step back from what’s here.

438 00:36:21.670 00:36:23.850 Samuel Roberts: I would say, yeah, point cursor to it.

439 00:36:24.340 00:36:28.300 Samuel Roberts: And just be like, we want to do this instead, where should we branch?

440 00:36:28.530 00:36:32.100 Samuel Roberts: See what it comes back with, maybe we can discuss that later.

441 00:36:32.390 00:36:35.799 Samuel Roberts: And then… We can run from there.

442 00:36:36.990 00:36:37.640 Gabriel Lam: Yeah.

443 00:36:39.350 00:36:44.749 Samuel Roberts: Yeah, sorry, this is a little more involved than I was thinking when I first was like, yeah, we can use the outputs of that.

444 00:36:47.010 00:36:51.870 Samuel Roberts: And we still… we still could, but I feel like it’s a little…

445 00:36:54.090 00:36:58.960 Samuel Roberts: I don’t know, duplicative to do, like, here’s all the tickets that were potentially discussed.

446 00:36:59.200 00:37:03.660 Samuel Roberts: But then it doesn’t have the context of the ones going in, so, like, we want to add that context earlier in the

447 00:37:03.810 00:37:05.700 Samuel Roberts: Earlier in the process, I think.

448 00:37:07.660 00:37:10.629 Samuel Roberts: Which probably, yeah, could even just be here, like…

449 00:37:13.170 00:37:17.880 Samuel Roberts: Maybe we change this from a ticket generator agent to a ticket sorting agent?

450 00:37:18.400 00:37:20.680 Samuel Roberts: Or an action item sorting agent.

451 00:37:24.170 00:37:30.679 Samuel Roberts: And then… Pass the new ones into here, and pass the old ones to another one.

452 00:37:31.180 00:37:31.550 Gabriel Lam: Yeah.

453 00:37:31.550 00:37:33.059 Samuel Roberts: You know, that’s probably the best bet.

454 00:37:34.240 00:37:34.830 Gabriel Lam: Okay.

455 00:37:35.630 00:37:38.319 Samuel Roberts: Hope this was helpful, I’m so sorry. If this was just a Morbi, like…

456 00:37:38.320 00:37:38.960 Gabriel Lam: Yeah.

457 00:37:38.960 00:37:40.050 Samuel Roberts: Understand what’s going on.

458 00:37:40.060 00:37:42.640 Gabriel Lam: No, for sure. I think another thing is, like.

459 00:37:43.570 00:37:51.040 Gabriel Lam: to what extent is what is already there? I don’t want to add on too much tech debt, And…

460 00:37:51.420 00:37:53.750 Gabriel Lam: I’m just like, if it’s worth…

461 00:37:53.940 00:37:59.319 Gabriel Lam: I don’t want to fully restart, but maybe as, like, is it worth restarting, and just…

462 00:38:00.350 00:38:02.799 Gabriel Lam: Building another branch and going from there.

463 00:38:03.860 00:38:06.959 Samuel Roberts: Could be. I mean, I bet you could reuse a lot of this stuff.

464 00:38:07.110 00:38:11.550 Samuel Roberts: But you might even want to just make, like, a new… Route.

465 00:38:14.920 00:38:18.409 Samuel Roberts: No, you probably could use the same route and just redo this linear.

466 00:38:18.410 00:38:19.080 Gabriel Lam: out.

467 00:38:19.080 00:38:27.879 Samuel Roberts: generate the… make a new function here, basically. Yeah. And then, wherever this gets called, we can probably replace that with, like, generate or update, you know? Yep.

468 00:38:28.590 00:38:34.560 Samuel Roberts: And then we can reuse some of the logic, we could get that all working, but it won’t break whatever else is still there for now.

469 00:38:34.870 00:38:36.179 Gabriel Lam: Yep. And then…

470 00:38:37.650 00:38:42.729 Samuel Roberts: Yeah, I mean, tech debt in the age of AI is gonna be… A whole other thing.

471 00:38:42.910 00:38:45.160 Samuel Roberts: That we’re not ready for, so I wouldn’t spend…

472 00:38:45.160 00:38:51.440 Gabriel Lam: I mean, I was just like, even in this PR, it’s like hundreds of lines, and I’m like, well, that’s just the beginning, so…

473 00:38:51.440 00:39:02.560 Samuel Roberts: I saw some people talking about that, where they’re like, you know, the big skill is reviewing code now, and even the AI’s good at reviewing code, but, like, we need the AI to review all of the AI written code, because it’s just so much more…

474 00:39:02.560 00:39:04.240 Gabriel Lam: Lines of code, then…

475 00:39:04.500 00:39:11.170 Samuel Roberts: you know, more code has probably been generated in the last, like, 2 years than, like, has ever been written. Like, it’s crazy to think about.

476 00:39:11.280 00:39:16.930 Samuel Roberts: But yeah, I would say this… this might be your entry point, is, like, say…

477 00:39:17.170 00:39:21.930 Samuel Roberts: Like, in this one, meeting created route, create a new function that’s generator update.

478 00:39:23.640 00:39:27.119 Samuel Roberts: work with cursor, what the hell? Oh, I just passed something to my cursor. Okay.

479 00:39:27.560 00:39:28.330 Samuel Roberts: Let’s stop.

480 00:39:29.170 00:39:30.900 Samuel Roberts: Okay.

481 00:39:31.120 00:39:36.819 Samuel Roberts: Yeah, I mean, I’m happy to hop on and talk some more, I’m happy to even think about it a little bit more if you want me to, like, try to actually, like.

482 00:39:37.170 00:39:38.680 Samuel Roberts: Dig in a little bit.

483 00:39:39.100 00:39:43.320 Samuel Roberts: Maybe we can come up with a few different paths, that might be the best way to do it, but…

484 00:39:44.220 00:39:44.780 Samuel Roberts: Yeah.

485 00:39:45.350 00:39:51.410 Gabriel Lam: I mean, maybe at, like, 3.30, like, in a half hour, 45 minutes, just to…

486 00:39:51.580 00:39:57.930 Gabriel Lam: I think… I mean, only if you have availability or capacity and don’t have other things going on, it’s more just…

487 00:39:57.930 00:40:00.680 Samuel Roberts: I’m sure nothing is blown up in Slack or anything.

488 00:40:00.680 00:40:01.320 Gabriel Lam: Yeah.

489 00:40:02.120 00:40:08.390 Gabriel Lam: Hoping that… We’re actually able to get some kind of direction.

490 00:40:09.690 00:40:12.680 Samuel Roberts: Yeah, maybe I’ll even fool around for 30 minutes.

491 00:40:12.680 00:40:14.389 Gabriel Lam: Sure, that’d be wonderful.

492 00:40:14.390 00:40:16.279 Samuel Roberts: see what I can do, just to, like…

493 00:40:16.690 00:40:24.820 Samuel Roberts: I’ll… I’ll push cursor a little bit, and be like, hey, this is what we’re trying to do, pretend that there’s no PRD kind of thing, and just see what it suggests, and make sure we’re on the right track.

494 00:40:24.820 00:40:25.320 Gabriel Lam: Yeah.

495 00:40:25.320 00:40:26.829 Samuel Roberts: I think this is a good way.

496 00:40:27.020 00:40:30.960 Samuel Roberts: But, you know, you never know until you really get into it, so…

497 00:40:30.960 00:40:32.220 Gabriel Lam: Awesome. I appreciate that.

498 00:40:32.220 00:40:34.950 Samuel Roberts: Okay. Alright, yeah, ping me at, like, 3.30, we’ll see where I’m at.

499 00:40:35.120 00:40:38.249 Samuel Roberts: If I have to jump to something else, that might change, but I’ll try to…

500 00:40:38.250 00:40:39.139 Gabriel Lam: No problem.

501 00:40:39.460 00:40:40.010 Samuel Roberts: Okay.

502 00:40:41.620 00:40:45.609 Samuel Roberts: Awesome. I’ll catch you later. Thanks again. Thanks, Seth. Yep, bye.

503 00:40:45.610 00:40:46.140 Gabriel Lam: Bye.