Transcript: wasmCloud Q4 Roadmap: Python SDK, Wasm vs. Containers, AI Policy
Transcript
Bailey Hayes 0:09
Hello and welcome to wasmCloud's community call for October 7. This is our quarterly planning meeting, and I'm going to be taking you through some of the things that are now added to our roadmap based on the discussions we've been having over the last two weeks. Share my screen real quick. So over here in our roadmap, we have some of the top-level themes, expanding out the component ecosystem, a lot of that is related to we now have much more maturity in some of our upstream SDKs and the languages that are out there, and in general WASI P3 support. And no doubt we're going to be coming through on wasmCloud side of the world and creating templates, examples, potentially some SDKs like a Python SDK is one that I've added to the roadmap.
I didn't add C++ yet. I was interested in if folks were excited about that idea or a C SDK. I think a lot of that will determine if we have a contributor that wants to lead that work, we could add it to our roadmap. But right now, I think for maintainers, I just want to commit to at least just one, which is the Python side, which is our number one language we've been asked for. I also think that we'll be doing a rev across Rust because wstd has been landing WASI P3 support, and you actually don't have to do code changes for our templates examples. We just have to build with a different target, and Rust 1.100 is going to have WASI P3 as a supported stable target.
So Rust 1.100 is like five weeks away from coming out, but soon, and obviously during this quarter. So brought that into scope. I think there are tons of other things that we can add. I have not actually yet added anything around component composition tooling or anything like that. I didn't I didn't add more on basically exploded component support here, since I think all that is going to be largely upstream from us in wasmCloud. But if folks are interested in working those types of projects, happy to help scope where and how to get involved on those. I did convert these over. Moving on. In addition to expanding out our component ecosystem support across languages and SDKs, we also, I believe, are going to be putting a strong point on performance and efficiency within the wasmCloud ecosystem.
We've got issues filed for each one of these, and I'll go into those actually a little bit more detail on our roadmap. Another key theme I think we should hit this quarter is around integration. It's just so darn easy now with an LLM to be able to add support for all kinds of new backends and capabilities, and so a lot of that, I think, we should be landing in awesome-wasmcloud, and we should pick some of the ones that we definitely want. There's some PRs already up for these that need review, so this is already in progress, and I think we could really spend some time here, even in this session, coming up with some things that we want to put in awesome-wasmcloud because I put in a placeholder of a few ideas, but I think that's one of those things where lots of people can contribute, and we can and we can really just like expand the ecosystem for wasmCloud.
Now another one that I have already put up an issue for, but right now it's it's largely a placeholder. I have been writing an RFC for it. I've got a lot more to add to that one, but there is already an issue that you can track for this, and that's around workload identity. And I'm I all of last quarter and the quarter before that, we spent several sprints just focused on security. We did hardened CI security. We did hardened sandboxing and policy controls on networking policy controls and capability-oriented policy controls, and we're going to continue doing that.
Bailey Hayes 4:33
I my number one goal, in addition to adding workload identity as a core feature to wasmCloud, is to also have a document that we can use that describes what's a CVE for wasmCloud, what's not, what our sandboxing boundaries are, and basically I want us to everybody, even a totally new contributor, to come into wasmCloud and have a good understanding of. Where and how we fit in the secure sandbox story. So that is the key themes. Before I dive into individual items that I've added to the roadmap, any questions so far? All right, this one. we started this initiative last quarter, but we left this a little underspecified. It's kind of there's a lot of we have a lot of hopes and dreams for this type of theme and project, and I think we can make more traction if we make it very specific, last time we added a Go SDK, and this time I think we should add a Python SDK.
In addition to that, I think we need documentation potentially on just wasmcloud.com, but maybe a different GitHub page, like how we have with Are We Fast Yet for wasmCloud benchmarking, but a place for people to look at the SDK maturity and how it's different between different languages, and that should help people select what they want to, you know, where and how they want to build for WebAssembly. And so this one right now is largely kind of saying, all right, let's let's start with Python is our are we componentized yet hallmark, but really capturing sort of the status and SDK maturity is what this one is intended to represent versus this spike here, which is just very specific on tactically what we have to get done to have a Python SDK, and for that it's basically we're gonna do exactly what we did for TypeScript and what we did for Go.
Do again, but do it for Python. And very similar to those, there's already a Bytecode Alliance project that we can build with to expand it out. There's I think you know I would like us to start small. Like, don't try to like buy out every template and example that we already have. Start with a very basic one and measure that. But then eventually, we will want to build it out so that Rust, TypeScript, Go, all of our templates, all of our examples mirror each other and kind of echo each other. So you can look and see exactly what's different between these languages. And but each of them aim to be the idiomatic representation of what you want for that language.
So, I call this one a spike because there's some key questions that we need to answer and make sure what's possible, what's not possible, call out those gaps early, and that's really the deliverable. This first part is trying it out, seeing the state of the art. What do we need to make everything work? And after we've bootstrapped the project, I think we can go over into that project's issue tracker, add a bunch of issues for each individual item, like each individual example or template that we want to add. We've got this one that we've been carrying over, but we're going to do it this time for real, for real. And I've actually tapped Victor to help lead out some of this.
So I've asked Victor to kind of review what the state of the art is, what folks have done, and look at the right way to basically make this pluggable and customizable for wasmCloud because a lot of people are going to want different types of infrastructure to back this. So really, it comes down to within wash-runtime, we have the right traits and the right API surface for people to do what they want here. And then so that's that set. I left this one in draft since I think the individual issues where we'll do this is actually not in the wasmCloud repo, but over in the awesome-wasmcloud repo. And like I said, this one's where I think being specific will be very important. And this is where I definitely welcome more people to comment, add ideas, or edit it. Aditya, definitely looking at you because you've got a lot of good ideas in this space.
Bailey Hayes 9:08
But but I would say this roadmap item isn't complete until we filled in every category of thing. Like we have examples of components, host plugins, workload examples, templates, tools, all in awesome-wasmcloud. Like there's at least one for all of them, but hopefully several. And so the effectively the catalog is entirely seeded. So so that we should have done before the end of the quarter. This is the one that I said is sort of a placeholder right now. I'm gonna convert this to more of a RFC because, well, one I've actually done several implementations of this already, just trying to like see what the boundaries are, what the threat model needs to be, and I'm pretty happy with where I landed, and now I want to.
Get an architecture review just of an RFC, and then we'll do. It'll probably work out to be five to 10 PRs to land the whole thing, and it's one of our most requested features over the years. So this is what I would consider when you do quarterly planning. You want to plan your big rocks first, which is what are the epics that you have to get done. There's going to be you know 50 smaller issues that we're going to do. We don't necessarily have to scope and plan for each one of those individual issues right now, but this one, and this one, and this one, those are our three big rocks right now. So those are now on our roadmap. Oh yeah, and this one being part of the Are We Componentized Yet epic basically.
Now we have some other medium-sized work that we have here that has been requested on community calls a couple times, and that's really providing interface design and composition best practices. So something very specific to effectively how do you write and author WIT. The other side of that coin is should I be writing WIT or should I be building with some other paradigm, and when to use what. So two different types of guides that we're going to commit to providing. This one is carryover, and I'm sorry that I haven't done it yet. It should take me five minutes. I promise. It's more once I do this, I'm going to be very, very, very, very careful about making breaking changes, and I wasn't sure I was ready yet.
But now I think I am. So that is in the roadmap. This one is also carried over. I actually pushed up a draft of this already, so I just need to get that one over the line so that people can build with it. And that leaves us with this one. And Jeremy, I was hoping maybe you could talk about where we landed with this in quarter three, and then how where we're wanting to expand to in q4.
Jeremy Fleitz 12:11
Yeah, thank you so much. Yeah, so where we landed with in q3 was really just getting a base set of k6 benchmarks inside our CI/CD build pipeline underneath scripts inside the wasmCloud GitHub repo, you can run all the benchmark benchmarking scripts yourself locally, which also means you can run it inside your distributed Kubernetes cluster as well, where wasmCloud would be installed. So this just gives you like just a basic, just some high-level type of scenarios here for just doing a you know like a fan out type of call or even a chain request where it calls like one workload to the next workload and then back. Where we want to go from here now, so we have KubeCon North America coming up in literally about a month, and so if you look about if you look at the past year, we've done a ton of improvements to wasmCloud, and this is more not the wash dev side where you're where you're you know developing Wasm components and using wash dev and doing the local the local type of improvements.
This is more for when you deploy to Kubernetes, so where we want to take this next part for k6 is basically showing off to everybody inside the Kubernetes ecosystem when you install wasmCloud. How does it really compare to other type of deployments for that same application? So the goal really is to have it so I could take a say for example a simple Go type of application that's inside a Docker pod. I'm sorry, inside a simple containerized pod. Be it scratch, be it UBI minimal, whatever you want to say. I put it inside a Kubernetes cluster. I should be able to benchmark that against the exact same type of compiled Go application into a Wasm workload component that's onto a host, and so then since we've already have all the other work that's been done with KEDA with auto scaling, we now have a lot of different knobs here that we can tune as far as the number of hosts and how we auto scale hosts, how we auto scale workload deployments on host and even across host, and so this next group of scenarios that we're going to be putting in the k6 is really just around like your microservicey type of scenarios with NATS.
Maybe you have like a NATS service on the back end. You're doing all the hops over NATS and then comparing that those results in k6 with your with your containerized type of application or even ones that are deployed on like on a micro VM.
Bailey Hayes 14:54
Yeah, and essentially that's like one of the top things at least that I get asked is. How does this compare to native? And I'm like, well, I mean, you know, there's there's a lot of different types of native. We should probably categorize and test against each of those because when you're looking at is Wasm fast, the story is more than just you know RPS. It's it's it includes cold start time. It includes warm start time. It includes the resource utilization that's being used. And trying to compare against all of those different facets is. I would love to have a material like this that I can point people at. I'm I'm I'm basically constantly going over here when people ask me questions, and I'm like, "Hey, just you know, this is available.
We we publish to it from our CI for every release. There have been regressions, but this is how we catch them and fix them. Here's another one, but you can see that largely we keep it pretty consistent and fast. So right now, this is a comparison between p2 and p3. But I want to I want to see more. I want to see I want to see us versus containers, basically. And what's the difference between warm start and cold start between a WebAssembly instance and a container? So yeah, and yeah, to your point,
Jeremy Fleitz 16:22
sorry, yeah, to your point, Bailey. Like, so we're going to have a dashboard just like this with Are We Fast Yet with the k6 side, but going back to the scripts, we want to have it so all this stuff you can run inside your local instance. So you're not just basically looking at it and taking it for our word that it's better or cheaper or faster. You can really prove it out yourself, including once go once again going back to those knobs as far as you know pool size, max concurrency. There's all these different things that you can you can you know now set, and obviously different components are going to work different. So we just want to provide like a base k6 benchmark that you can start experimenting with yourself, and how do those knobs really, you know, work or interact with your type of setup?
Bailey Hayes 17:11
Yeah, and largely a framework, right? So you can, like Jeremy just said, add your setup to this to see if maybe there's something specific that's happening in your cluster that we haven't been able to reproduce in our scenario, and then obviously as a welcome place for people to help us expand out our test suite and add regression tests. Obviously, I don't want my benchmark suite to get too long because we call it as part of our release process, but I think capturing the right set of scenarios and specs is what we want to do. So called out a few of these, but I'm sure there are going to be more that will that will want to expand. So that is the rundown of a lot of the ones that I've set up so far.
Now what I want to hear from you is what did I miss? Is there something that you're expecting to see, especially if it's one of those large to medium-sized tasks? I want to make sure that's well captured on our roadmap. If I went and showed you all the PRs and issues we closed in Q4, Q3 that weren't on our roadmap, it would be the majority, and that's okay. the big the main thing that I want our roadmap to surface is the kind of larger types of things that the community is expecting us to deliver.
Jeremy Fleitz 18:38
You know, Bailey, you did kind of already cover this with on the Python SDK side, but can you think of anything, or really anybody on this call, can you think of anything that is really that could be blocked or waiting on something that's more upstream, like on the on the Wasmtime side, that needs that could throw this off? Because if you look at this one, I feel like this quarter is not as lenient or requiring changes that were more upstream as the previous quarters.
Bailey Hayes 19:03
That's a good call out. Okay, I should actually add this as a comment. With WASI SDK 34, cooperative threads is behind a flag, and CPython. I'm just going to say on main now depends on this one as the SDK. What it doesn't do right now is it doesn't flip on that flag, and we haven't gone through and after enabling that, surface that and all the specs For Python, the PEP for this has been approved for surfacing WASI built artifacts in Python wheels, so that you can have basically a componentized ecosystem of different types of Python products. That also have native dependencies, and us be able to link them together and give you one dot wasm at the end of a build.
This is the big thing. Releases wrong word. Stabilize. So this is pretty aggressive, right? That's the thing about quarter four planning is you have KubeCon and bunch of conferences, and then a bunch of holidays, so you get almost no wiggle room in that quarter. And we have one of our biggest upstream goals, basically for this one, is obviously to get cooperative threading stabilized. I gave a demo two weeks ago, or maybe three weeks ago now on using cooperative threads natively in big Go, and that worked out well. That was a really good experiment. I found bugs. We fixed those bugs. Now we need to do the experiment again and keep iterating until we're ready to call this Stabilized, and obviously we can do all of that ahead of it being officially stable.
So we can we can use Python as one of our references for saying, "Hey, we used it extensively here. We we've we've now battle tested it. It's running in CI. But for languages like Python and for Go, they require that it is a stable feature that is not going to change out from underneath them, a stable ABI, and that won't be official until this WASI release. Once that flips on, that's when you can see languages and SDKs start adding it as one of their stable features, so doing the work to get this working. What we're really saying is we're going to do the work to get this working behind flags. So we're going to give you the option to flip all these things on and get it, take advantage of it all.
And for the most part, I think when people are entering the WebAssembly ecosystem, they're pretty comfortable with using things like componentize-py with a set of flags to get the latest and greatest features that they want to use, and so that's that's basically going to be our path for this. So, leaving that bit of context, the other features that are being actively worked on in the component model that might be relevant to us. Let me bring up some of those. Some of the ones that are in flight. I think the biggest stuff that's happening right now is very much around what browsers need to natively implement the component model. Yesterday, the within the W3C WebAssembly group, we actually deputized creating a new subgroup that's just for the component model, which is really just for browser vendors to come together and talk about component model as a key feature.
When you say threads, Victor, is this different from cooperative threads? I think I think they're the same, right? So cooperative threads is the big thing that I think we're going to be mostly talking about. Yeah, yeah, this is a lot of this is happening. This is going to be a lot of Victor, I would imagine, and a lot of this is going to have an impact on the things that Victor, one of our wasmCloud maintainers, maintains, which is JCO, and so this is super active. They needed getters and setters of the component model is another thing that we'll be adding to basically WIT. But in terms of what would impact us for wasmCloud, that's going to be part of our normal kind of release cycle.
I'll be the one usually pushing the button. I'm pushing the button next week for WASI 0.3.2. Hit the button, release is gonna roll out, and then I'm gonna sneak over to wasmCloud, and then I'm gonna depend on the latest WASI release over there.
Bailey Hayes 24:33
So I think all that is gonna be transparent, non-breaking, additive changes that'll be happening, but nothing that I think we will necessarily have to adapt to in our project, except for cooperative threads in Python and Go. Those those will definitely be updates. Although with my Go demo, I showed that I actually had to make zero code changes to my actual Go source code. That was all kind of under the hood to be. Able to use it, which is great. That is what we want. So I imagine Python should be mostly the same, except if we're the ones providing the SDK and flipping the flags, we're obviously going to be doing the churn there ourselves. I hope that answered your question, Jeremy. Is that good enough?
Jeremy Fleitz 25:21
Yes, yes, it did. Yeah, thanks.
Bailey Hayes 25:25
Yeah, I think those are the big things in terms of WASI APIs, the ones to watch: WASI TLS, WASI OTel, WASI Graphics. Maybe some updates and sockets, but I think that's that's going to be where most of the WASI surface is going to change. I think over this next quarter. Anybody else?
Aditya Salunkhe 26:02
Just a quick suggestion. Now that we have quite the LLM boom, do you think it makes sense to maybe change our philosophy with dealing with issues, and instead of accepting Pull requests. We instead encourage people to create really detailed issues instead.
Bailey Hayes 26:29
Yes, I think I'm. I've at least learned over the last quarter. Be careful what you wish for, and when I create issues, I better make sure that I mean it. I mean what I say, and that if somebody were to just point an LLM at that issue, that what will come out is exactly what I wanted. I agree. A lot of these I did keep kind of high level, although I think the other strategy is just make sure you assign yourself if you aren't welcome to somebody else going and taking that one because it's not specified yet. I also kept them in triage because I'm like, ooh, it's not really ready for work, so I'm going to keep them here until we're ready to burn down that list.
But what do you what do you mean about the PR side of this, I guess you've probably everybody's probably noticed that a lot of open source projects now have actually started to deny pull requests. That that's definitely something that's been happening for a lot of different reasons. For me, I'm not ready to make. That's too big of a leap for me. I'm, you know, PR is still welcome for me. But yeah, what are you thinking, Aditya?
Aditya Salunkhe 27:49
No, I just meant that, you know, obviously with the introduction of many new contributors, they'd be very likely to be tempted to just throw it at an LLM and get the first result that I get, which isn't exactly wrong. But as maintainers, there's a fair bit of churn and quite a bit of maintainer workload, and it's just that it would be highly appreciated that before you create a pull request, you for unsolicited work at least track it in a good issue first and draft it through a couple of different times and then start working on the pull request rather than getting a whole lot of iterations and acting almost like an abstraction from a maintainer to a person who is in turn just talking to an LLM. So it's it's just like a high level abstraction, which it would be better to avoid. And yeah, issues before PRs.
Bailey Hayes 28:58
Yeah, I totally agree. We've been, you know, hashtag lost. I feel like I've I'm I'm in a lot of other open source projects where we're just getting snowed under with so many different PRs that are like pretty far off the mark. Whereas I feel like in wasmCloud, it's if there was ever an issue, it was my fault. I didn't do a good job in the issue, filing the issue, and so I think the actions to take. I think we have a we have a lot of things I would like to see here. Actually, I want to AGENTS.md. I think we should we should agree and align on an AGENTS.md, and part of that is to have an agentic loop, basically, because like you said, a one shot now with LLMs isn't quite the right tuning for them. The reality is that you want. To do a couple different passes over the code before you call it done, and Yordis, you want to come off? You want to talk? Tell me about your. What did they do?
Yordis Prieto 30:12
I as soon as they put the policy, I look it up because I do a lot of Crossplane, like in the contrib, and honestly, I'm proud of what they put together as a policy. No, their AI policy to me sounds the most professional AI-friendly policy. And the bottom line comes with it doesn't even focus in AI. He focuses on yo. You are taking ownership for your work
Bailey Hayes 30:41
is, yeah,
Yordis Prieto 30:42
like which is what I want, right? Is everybody using AI? The reason I get the map work and all the stuff was because I use AI. So like anything discourage that, I will be like bounce. I'm out. Like okay, fine. I don't know dealing with this. So I don't know. Like the Crossplane AI contribution policy I already shared with you, like it's really it's really sounded to me. So I adopted for all my open source work and orgs. Just like use that one.
Bailey Hayes 31:21
Have you have you read the one that we did in the BA? Are you familiar with this one?
Yordis Prieto 31:26
I need to look it up. To be honest, after the Crossplane one, I start looking for like one that I will be like, okay, everything that you wrote here, I know exactly why, and I'm really valuable, like appreciative. So I need to look it up for sure.
Bailey Hayes 31:41
Yeah, you know, disclosure. I'm on the technical steering committee and helped author this, so I'm, you know, I'm a little biased. I feel like, and the Bytecode Alliance were stricter than some others, but we're not anywhere near strictest. So for us to prove that you are taking ownership of your work, we basically ask that you don't give attribution to an agent that you know you've done it. Ultimately, you're taking ownership, so you're saying that. And no matter how bad Claude and others want the marketing to show up here. We we want to ban that just so that you like it's like a litmus test. Did you read our AI tool policy? If it's in there, then I know you didn't. So that kind of thing. But first things taking ownership. I
Yordis Prieto 32:37
did it by the way, but I think it's because of all the repos in CONTRIBUTING.md files pointing to this. I didn't read it, and I contribute to few packages, and it's not because I just didn't know because it was not in the repo itself. I normally put in the contributing. Yeah, I for me CONTRIBUTING.md,
Bailey Hayes 33:02
yeah,
Yordis Prieto 33:02
outside the README because some people put in the README. That is where, like, I put these things. I'm just letting you know as a contributor. Contributors, like I didn't know that. Yeah. Okay.
Bailey Hayes 33:12
Well, we'll refer to that in both our CONTRIBUTING.md and I think in our README. So we'll do it in both.
Yordis Prieto 33:27
And I have Aditya. I have one comment, which obviously, guys, I'm being the chicken here, and you are the pork. So obviously, I don't have the skin in the game like you. So please, whatever I'm saying, you know, take it with a grain of salt. Is any British here?
Bailey Hayes 33:47
Any what? If that's
Yordis Prieto 33:48
British, UK folks are here. Okay. If we start speaking about biscuit in the GitHub issue, and you have an American and you have a British one, we're gonna be talking about completely different things, and I wrote about gonna share a link about blog post or a page that I created for them. The reason I say that is because be careful with saying telling people, yo, open a GitHub issue because we want to discuss about the thing. Sometimes the best thing you as a contributor can get is actually reading code, because you're gonna get into semantic meaning of things and stuff like that. That like just because your culture is different, just because like your experience is different, we maybe even speaking about the exact same word, but when you put it into the context of programming, it means completely different things, and I notice that across the board, especially with AI, because now everybody uses AI.
So the threat is AI, the replies are AI, the reading back and forward is AI, and AI is not even reading at the code itself and trying to. Make sense of it, so you have lengthy threads of people, wallpaper back and forward, where all it meant was like, oh, okay, here a bunch of function calls, and that's what it means to be a biscuit. Okay, cool. Just be mindful of that.
Bailey Hayes 35:16
Yes, yeah, I think,
Bailey Hayes 35:19
I think for us, like our takeaway here is this one, right? Which is basically, we're gonna tell people don't rock up with a PR. Start with a GitHub issue that's also marked as ready for work and isn't assigned to somebody else. Make sure we've agreed on what's a biscuit before you started working. Is that is that basically the main callout? Anything else to add to this one so far?
Yordis Prieto 35:43
Or, or you let the PR to become noisy, Bailey? But you use the labels to help you as a contributor, right? There are labels that filter down that you say, "Look, we shouldn't pay attention to this. We're going to encourage the chaos of people trying to show code. But the labels are going to help you as a contributor to say, "Well, we're going to ignore from here. The where it gets tricky, and obviously, again, I'm the chicken here. Is that I don't know CNCF stats and stuff like that. Honestly, I will put this in CNCF. It's like they should have labels that says, "Hey, here's a policy that we're trying to follow across everything because it's going to affect the statistics. So, but again, easy for me to say. That's what I would recommend.
Bailey Hayes 36:28
What I have been doing, and I think Aditya, you've been doing it too. We basically say, if you want to collaborate our own code, that is a core philosophy that I hold, Right, and to do that in the age of LLMs, if something's not ready to land or really be human code reviewed, but you want to collaborate around code, put them in draft.
Yordis Prieto 36:55
Yep.
Bailey Hayes 36:55
And so I like that better than labels because I'll be straight up like every time I look at this and I see that they're open and not in draft, I feel bad because I'm like, oh crap, I didn't I didn't finish reviewing this, giving feedback, right? So like as a maintainer, yeah, I could filter it from like you know I'm hacking around, but I guess my callout is, I look at every draft that comes through too, you know, and if somebody's like way off in left field, I'm gonna be like, hey, this doesn't quite make sense. You know, here's what you would need to change for it to be, you know, something that we could land, right? What do you think about just like the difference between draft and not draft?
Yordis Prieto 37:36
I always force my team and myself to use draft properly, like I shame them for it. Like, why you? Oh, it's not ready. Why isn't draft then? So, like, that is the signal for me to say, okay, I have to take ownership now to block you to get to main. So please use it as it's supposed to be. That's just me. I'm really strong opinionated about that topic. Otherwise, pick a label, pick whatever else. I really don't care, but like that decision you're trying to make, they have to be there.
Bailey Hayes 38:08
Yeah, I'm gonna, I'm gonna encourage the idea. I'm gonna, I'm gonna encourage draft and welcome them. I think we should also go ahead and add it to this policy, like expect drafts to be closed after two months of no activity. What do you guys think about something like that? All my repos have
Yordis Prieto 38:34
an stale label.
Bailey Hayes 38:36
Yeah, all the
Yordis Prieto 38:37
repos always have an stale label. You as a maintain either it gets close, or the person don't really care, and you look at as an intern and say, "Okay, there's good enough stuff that I'm gonna add the label. I'm gonna vouch for it, or just get close.
Bailey Hayes 38:51
We've had stale in wasmCloud before. As somebody that is on GitHub notifications for hundreds of repos, I don't love the stale label because it shows up in my notifications and GG at the beginning of the month every month. It's not great, so I don't love it. I know some people do. I what I did is actually I created a mechanical job for WASI because obviously that project's been around for years, and when I go and do anything in any given issue, I'm like, I'm like spamming hundreds, maybe 1000s of people. So I, I've basically set up automated batch jobs for it, where I am like, all right, today is GitHub notification day. Everybody's strapping. So that's kind of how I think I'm gonna handle that one, but
Yordis Prieto 39:43
Bailey, that sounds like a Bailey problem to me. In the entire billions of people, billion. Put that into context. That sounds like a Bailey problem to me. So you, I should, I think you should require Bailey tools. Throw. Jeff, out of it, add to it like
Bailey Hayes 40:03
Eric. I thought it was Eric.
Yordis Prieto 40:05
Wait, no, Jeff, the one who say yes or no. Like Jeff, go over these notifications and delete them all. Look, use Liam, cool tool that I haven't used too much. Liam, sorry.
Liam Randall 40:17
No, it's okay. You don't need to apologize. I'd like to see a Bailey MCP server,
Yordis Prieto 40:22
right? Yeah, it's powerful
Liam Randall 40:23
tools. Yeah,
Bailey Hayes 40:24
I mean, you guys could I could bring up my Claude right now, and you can see where I was doing wasmCloud PR triage via that. So you know I'm using it, but the reality is I actually it doesn't help much. Most of these I want to see and read. Maybe that's that's a different kind of me problem.
Liam Randall 40:44
Bailey, as somebody that regularly you know leans on Claude to help me get things done, I just want to say that the times the amount of times that Claude is actually quoting you, like you, like you're the LLM, kind of shocks me. It'll it'll actually be like, well, Bailey thinks, and then it'll link us to a oh, you know, wasmCloud community meeting. So you know, we kicked off. We did it on purpose, Aditya. You know, about February this year, Bailey and I sat down, and we were just doing like a like just a review of metrics, and we were like, "Huh, it's LLMs now read our docs more than people do. At least that's what we thought we were saying. So we were like, "Maybe we should write docs for LLMs.
And so we Eric is not on the call today. Spent months like doing all the sort of like underlying engineering, and then the new wasmcloud.com/community, which we're really proud of. You know, to sort of get all this out, and I think it's actually working really, really well. You know, we see agentic citations, you know, all that, all that kind of stuff, like on the increase. So, yeah, and yours, I know you're joking, but the reality is, is that you know when LLMs have questions, they call Bailey.
Yordis Prieto 42:10
Yeah, I mean, I am half joking, but like I am using you too, Liam, to run a tiny model that is of our MCP calls. F***, I forgot the name. Wait, maybe I should I should show you. But
Liam Randall 42:24
I love your I love your feedback. Um, you know I keep uh thinking that the next thing that we should get it we're gonna have a big update later this week that I don't want to spoil. So like my feedback is
Yordis Prieto 42:35
too much clicking right now. Like nobody got time for clicking anymore. So like make yourself clickable.
Liam Randall 42:42
Okay, yeah, it's all keyboard control, so escape up, down, left, right. No, no, no. That's the thing.
Yordis Prieto 42:47
Like, I don't want to do anything. I want my clanker to be doing.
Liam Randall 42:52
Well, I would love to know. It doesn't. It does have an MCP server, so your LLM can drive it. But I would love to hear more about, like, you know, what function you want? Like, do you want a cron interface? But this is not the timer. Timer where we get that feedback, and it teaches how to stand up for like five minutes. So I apologize.
Aditya Salunkhe 43:10
No, that's okay. I've linked a. I'm sorry, I forgot how to talk. I've I've included a infographic that's from Andrej Karpathy, who's quite renowned guy, and I've I've linked his top LLM usage rules, which I feel could be useful when you create a pull request. One of it is using ASD-STE100, which is a aerospace. It's an old language format, which really puts things in like simple technical English, which is really easy to understand and follow through, which could really help cut down the AI fluff and make it easy for human maintainers, and also I mentioned in the chat to include HTML artifacts that are shareable with people who explain a really large pull request.
If you just pop in with like a pull request with like 5000 lines of code, it's really hard to manage and review that. But an HTML artifact that explains a brief walkthrough of how that pull request actually works, or the proposal behind it. It's actually really helpful from maintainer's perspective. I use it quite very often in my work, and I found it to be quite a productivity booster. And also using diagrams is also really good. So those are just my few cents on this whole topic.
Bailey Hayes 44:47
I think I've gotten all of them captured so far. These are great, by the way. I want everybody to keep them coming. So want to make sure we let people know we want explainer videos. Not that they're required, right? Like I just I want people. To know, like, what are your options here to make this to you best position your PR to be landed? Explainer videos. I think I was going to say no AI grenades. Have you guys seen this page? Slop grenade. This. I think this explains a lot for me, you know, like the difference between A or B, and that's just it. Just all you have to do is refer to this page and be like, "This is the difference. Like, just if I'm me, human Bailey is asking you a question, human, you please respond. And everything else, please don't. Yeah. Oh, Bailey,
Yordis Prieto 45:43
I have one suggestion as well. If you're trying to make it a tooling problem that is your responsibility, I think you're gonna end up with a place where you would enjoy it. Meaning stuff like this, for example, they know slop grenade. It's like okay, well, what skills, what tools am I missing that person is not using, and pay attention to that. And second to that is use linters as much as you can, especially for the code. Like everything in my team, every time we come across something that okay we don't like X and Y whatever that means. The first question I ask for that is could a linter just do this the next time? And if the answer is yes, all in into linters, right?
Dylint for me has become the tool that I actually push more than actual normal code because everything just becomes linters and linters and linters. This tool for me has become like every single small things that like I disagree with. I throw the lint at the problem first, and then I throw agentic AI at it, especially you know in the code side of things, you know. Eventually, there's some stylistic code stuff that like okay, that's a Bailey way, fine, whatever. I don't care. Like it is what it is, but like if you want to make that for WIT, Yeah,
Bailey Hayes 47:31
I went ahead and created this issue so I didn't lose what I'd already typed. I'm gonna add. I agree about the automation part. The no slop grenade for me is, you know, I probably talk to 50 different people in a day. Maybe this is another Bailey problem. I don't know, but I have 50 different chats going, and in over half of them, I've noticed I'll ask a very simple question because I'm tactically just trying to figure out: Are you working on this? You know, or like, did you see this? That my example from yesterday. Somebody posted, "Hey, I went and created WASI P1 for the browser, and I said, 'Hey, did you see that JCO does this? And they have this shim here.
Here's the URL, and then they sent me back an essay, and that's what I mean on that front. You know, like if me human Bailey's telling you thing, it's a yes or no question, and if there and if there's more, put it below the below the matter.
Yordis Prieto 48:35
I would I would like to I would like to share Bailey what happened to me, and they don't know this. Luke don't know this, and I feel bad about it. If you go to the component model about the annotation, okay, you're gonna realize you're gonna realize that the last changes in the readme is squashed down. Like fundamentally, I remove content. Why? Well, I felt bad for Luke because he came and say, "Hey, this sounds like AI slop. Which, yes, I use AI for it for sure. But it was intentional that I keep asking the AI to put all the decision making and context in the readme in the in the actual issue. So, to some extent, the problem was not AI slop because I was the one asking the AI, hey, I make decisions about the naming.
I made decisions about like the research I did in C# and Java and why to be explicit? I made decisions about why not like top level ad and naming and so on. Right, so I honestly felt that if people were using these tools, they could point the tool at the problem and ask themselves, reduce it to me the way I like it. Because if I didn't document it, all the trade-off. Now I have to sit in meetings like the last time, and then explain to people that hey, don't do this, don't do that. I research this, I research that. Here's the reason for this, and here's the reason for that. So like, I reduce it down because I fundamentally understand. Look, right, and I cannot tell anybody to change their workflow and stuff like that, but like, okay, what do you do there?
Because that was intentional, and I thought it was good. Because I'm coming from the mindset of somebody that is burning like 20,000 a month in AI tools, like I use them. So for me, that's a bless because I use my own tool to say, okay, now do it the Yordis way, the Bailey way, the way I like to understand problems. Anyway, the
Bailey Hayes 50:46
HTML artifact would be the right way to do that, right? Like what you expect humans to read and code review and retain is different from capturing intent and design decisions. I mean that's that's a hot take because a lot of people believe every design choice should now actually be committed in the repo, and I'm guessing you're in that category. But I think for other repos that don't adhere to that, then the next best thing is capturing the intent in an external document, and that being shared, and then them being able to work through it that way.
Yordis Prieto 51:20
I get it, but keep in mind how painful using GitHub for those type of workflows are as well, right? I'm not disagreeing. All I'm saying is like from my side, it's like, okay, now what? You're using the opportunity, and like, is it really, is it really bad, or is like, hey, maybe as a contributor, you should have your own tools around this because it's a problem, recurrent problem. And the reason I like all the decision making to be documented is because I don't want to be asking the exact same questions if I can just like throw the eye at it, right? And like, am I gonna write for the way Bailey understand it, or the way Aditya understands it, the way I understand this?
Like, writing is always so tricky that like, just give me all the context, and I optimize in my end to filter them. That's just my take. Obviously, I'm not pushing into anybody, but like I would actually question, like linking outside and not having as much context as possible.
Bailey Hayes 52:15
Well, the way that we solve this in the before AI times for WebAssembly proposals is we actually would have an entire repo dedicated to the proposal itself, right? And that captured all the design choices and decisions and stuff separate from the individual spec updates and like the like the facts. You know, they're they're different, and that's why I'm still kind of wondering if maybe there's like a bridge here where it's half and half. Maybe it's another repo for that thing, or you know, Claude artifact. That's the HTML page with it.
Yordis Prieto 52:54
What should I done for the annotation issue? Like, why shouldn't I done? I honestly don't know. I felt bad after because it was not my intention, and I honestly thought it was a good thing. So I just sharing to you, so you decide whatever should happen. But like,
Bailey Hayes 53:11
well, I think the answer is it's going to depend on the repo and the project, right? And what you're changing. And what we have to do here is come up with the right thing for what we want people to do for wasmCloud, and I strongly believe that if we don't have a permissive policy for AI use, we're going to be left behind. So, how do we make that something that we can all feel good about? Is now the goal. Yeah, Frank.
Frank Schaffa 53:42
I mean, I just think that I mean, I think that's a great point that you are just put. And why don't just have this in a separate folder? It's actually called the decision process or something or full context, because if you're just looking and searching for something that you just want to use, you don't need to find how the how the decision was made and what the original context was and so forth. I mean, you just want to use it. It's there.
Bailey Hayes 54:16
Yeah, yeah. I mean, again, it's so it's so project dependent. For us, I mean, I we architecture decision records, right, was something that we used to embrace. We haven't really done those for v2, but I would be game to bring them back, right, because they're helpful. I think in most projects, because there are lots of reasons why, and they will always be relevant going forward, especially for architecture choices. So it's just more work. And at the time, v2, we didn't have LLMs, so we didn't do the more work. But now it's a little bit easier. I think, yeah, where I'm at is. Is if me Bailey and not Bailey bot, but like me Bailey is on Slack and I'm talking to you, I'm I have the expectation that you are talking back to me, and if it's not you, you know you can say hey my Claude said this. That's actually totally chill for me. All good. Oh, see you Frank. It's when it's masquerading, you know, when it's like
Yordis Prieto 55:26
Bailey, Bailey. I'm gonna push you back on that. Like right now, my team they talk to me through Claude. Here's something amazing: the human defensiveness goes away because you see underneath that says Claude, so I can no longer take any words personally. Which I know that's a like a personal girl, whatever. Let's put that aside. But like it's interesting that for me, so reflecting is like f***. I don't get anything personal, although sometimes it's telling me what to do because I just remove the person. Say you know what? I'm gonna focus on what he's saying, and second to that, sometimes there is a slop.
Bailey Hayes 56:09
Right? That's different.
Yordis Prieto 56:10
No, no, no, no. Give me a second. Sometimes there is a slop, and there's a lot of stuff that I didn't ask. But again, going back to the context, right? Sometimes the slop is actually around giving context, and that's why what I would say, hey, please train your clanker to give context, not to give word for the sake of words. That I agree, and the reason I say that is because why don't you assume that everybody is just using the tool, without me having to put a thing behind underneath that says it was by Claude, right? Assuming that, assuming that the slop and the context, although bigger, is because it's trying to give you context. I'm again, I'm not talking about the writing for the sake of writing jumping around.
Okay, because realistically, like, what does it mean for me talking to? I'm really bad with words, for example. Like, I literally, I think speak, listen, hear, do everything through pictures, in my brain. I don't see words. That's why you see me sometimes like, what are you saying right now? Why you rumble around, mumble around, or why you see disconnected and completely broken sentences in English is because like, I don't see what I'm writing, even when I read it, say, "Oh, read it three times, I read it three times and I still don't see it. So for me, these tools are blessed, right? Obviously, there is a downside. You barely take a person and say, "Why the f*** is this guy sending me AI slop? Then I can see it, right? But I'm not the only one. And you could you could take advantage of it,
Jeremy Fleitz 57:42
Biscuit, Yordis, biscuit.
Bailey Hayes 57:44
But when I'm when I'm talking to people in other threads, right? What's happening is they're not reading what I'm writing. They are just regurgitating it to AI and sending it back to me without having ever read A or B. That's different. But but that's different though. But that's what's happening in half of my conversations, and that's what I mean about when human Bailey contacts you. Human you needs to respond to me.
Yordis Prieto 58:11
No no. Whether or not
Bailey Hayes 58:12
you use AI tool to respond to me, that I don't care. But okay,
Yordis Prieto 58:15
but be clear on that because you see now I'm misunderstood. That was that's that was not what I understood, right? What I understood was like I have to write down back to you, and you're not saying that. All you're saying is, "Hey, f***ing read what I sent to you, and at the very least, understand whatever the heck we're talking about. That I agree with you. And don't always know what your word said without extra context.
Bailey Hayes 58:35
Well, I mean, go look and look at my last thread. You can just search for me there, and you can see exactly what that looks like live, without me calling that person out individually. But I think the what I'm saying is, if I ask somebody a yes/no question, I expect a yes/no response.
Yordis Prieto 58:57
Oh my God! You you definitely have to go to these TV shows and things like that, where people just go around, but fine, I understand it.
Bailey Hayes 59:07
And so here, I would say, like that's what I mean by no slop grenades in correspondence. I think we can we can narrow that down, right? Like if I'm coming in and I'm adding review comments, I'm gonna be clear what my AI gave me, what I human filtered for you to. If I'm posting a comment, I'm saying, hey, are you willing to work on this? I don't want you to give me a treatise on why you want to work on this, please. That's a good example of one that happens a lot, and it is true that their clankers are mistuned, but also like it's because they're automatically responding. So that's the part I don't want. So, anyways, so far I've got giving people advice on how to do LLM-driven development on our repo.
You know, basically, I think indicating that it's okay, right? Expected, giving them AGENTS.md so that it follows their best practices, making sure that people have a good understanding of like an available issue. We're going to make an effort to make these issues if they're ready for work, fully expecting we're just going to get an LLM pass on it, and do it so that it's totally set up for success. So what comes out is basically what we want. Encouraging people to use drafts, encouraging people to provide context via HTML artifacts and explainer videos, like having additional matter.
Aditya Salunkhe 1:00:53
I feel like explainer videos are a bit too much.
Bailey Hayes 1:00:56
Okay.
Frank Schaffa 1:00:57
Yeah.
Bailey Hayes 1:00:59
I like the explainer videos on UI projects, but we don't really have that. So
Aditya Salunkhe 1:01:04
yeah, well, wasmcloud.com that would be good.
Bailey Hayes 1:01:09
Yeah, well, but we have the deploy preview.
Aditya Salunkhe 1:01:12
Yeah.
Bailey Hayes 1:01:15
Um. So and then yeah, being clear about when it's human to human communication. Let's be humans, and for dealing with this kind of stuff, too descriptive. Like giving them some best practices so that they're hopefully their LLM will find that and use it. We'll reference it both in our CONTRIBUTING.md and README. Dropped in a couple of different ones. Let me drop in the BA one. I think the BA one is more strict than what I want to be here in wasmCloud. And then we did get other questions that I want to make sure we answer. So for the AI agent, where I'm at, the a the AI policy for the BA is very explicitly like no, you may not attribute anything to your AI agent.
It is attributed to you. That's different than how I think I want to restrict things because I don't want to have to respond to people and tell them to git commit --amend. It is hard enough to get people to do the DCO that I really don't want to add that rule here. I also don't want to add the rule that they have to do it. So like my contributions to LLVM, I to be part of their contribution policies that you have to actually say which model you used. What I think I'm where I'm at here, I think is welcome describing which model agent used to author PR. So, not requiring it, not even being too strong about it. The reason why I would like this information when I'm doing PRs is that I have access to multiple models, and if you tell me you used Opus, I'm gonna use Soul. If you tell me use Soul, I'm gonna use Opus for flavor, so I would like to have that in there if that's an option. Anything else we need to add here?
Yordis Prieto 1:03:36
Just wait before I say anything. What, wasmCloud? Do you have any skills repo already?
Bailey Hayes 1:03:46
I have a Cosmonic one that I've been really investing in.
Yordis Prieto 1:03:50
No, there's no one. Yeah, the last miles they just like okay add to skills, which sometimes I'm not using skills and instead just documenting the heck out of things instead of using skills. So all I said the skills like yo wink there is enough documentation. So um yeah. Nowadays I tend to use skills more like how tos or like tutorials and things like that. I guess I don't know. It's kind of weird. The more evolved, the less you need it. As long as the documentation or the context is in the actual repos.
Bailey Hayes 1:04:27
Yeah, exactly. I think I think the call. I'm just gonna call it AGENTS.md, and if that also involves like recommending skills, there we put them there too.
Yordis Prieto 1:04:36
Well, you should keep the AGENTS.md as small as possible. Keep in mind that, like, because some people, some people make this anti-pattern. AGENTS.md are included in every single, like, front sometimes, depending of the harness. That should be small. That should be like really, hey, you're making these mistakes enough time. Otherwise, just move it into skills or. Documentation and from there you say, hey, make sure you keep in mind wink that thing, because I hate when people put like so much content in there, Bailey. That like now you're causing all my tools to be effective because you're you don't know all the things I have in my computer, right?
All the skills, all the memories, all the stuff, right? So every time somebody adds stuff in the AGENTS.md, it's like, okay, fine, but are you qualifying and quantifying whatever you're saying? Because you don't even know if the problem is a Bailey computer problem or if it's actually a generic problem for most of the AI. So yeah, keep that in mind. Most of the time, documentation is much better than like bloating those files up.
Bailey Hayes 1:05:45
Yeah, yeah. I mean, that's the whole point, right? It's supposed to be able to read our natural language for the actual real stuff that we're writing. So, I guess there, there. The problem with skills is that I think AGENTS.md generally supported across all like all of the major coding agents. Now the way to load skills is getting there. I don't know if there's one that's the equivalent. You know, everybody, of course, everybody. I mean, all of the people selling these things want their .claude/settings to be the thing that you commit to your repo, and I am using Claude right now, but I'm not as into doing specific tools in our repo. I'd prefer the more generic ones if we can.
It does it there's a more generic skills thing uh I'm just not aware if there is then we can add it I know that generally speaking my Claude skills work in Pi for example like I just that just is you know I made it here you made this I made this but I don't know if that's like a general standard like AGENTS.md became
Yordis Prieto 1:07:02
Claude is the last one that is not supporting that .agents/skills. So most of the other ones already agree. So Claude is the last one, and the AGENTS.md already they already said that they would start supporting it. So the latest version you don't need the CLAUDE.md anymore. So keep that in mind. So what I've been doing for now is just to symlink .claude/skills into .agents/skills.
Bailey Hayes 1:07:31
Okay.
Yordis Prieto 1:07:31
Until further notice.
Bailey Hayes 1:07:35
So another bullet, basically on us having a shared set of skills that we strongly recommend you have installed as part of our CONTRIBUTING.md. Yep, that
Yordis Prieto 1:07:45
also is true. Like I normally put it in the external repos because like the policy CI and like the speed of that change, I don't want to be affected. So in my team, I do not like AGENTS.md. I do not like skills directories. Like no, no, no. There is a third repo, or second, or whatever. We maintain it there. We're a little bit more loose. We move fast because we don't know what the heck we're doing anyway. So I prefer that way instead of in the actual repos.
Bailey Hayes 1:08:16
I just you know in the scope of like what's the wasmCloud project requirement? I kind of want wasmCloud to only depend on other open source or in a foundation things, you know. And I can recommend other things, right? But I also don't want to be on the hook of keeping these skills all the way up to date, you know, because I'm not gonna be able to, so whatever I bring into the scope for wasmCloud, it's got to be something we're willing to commit to maintain. That is
Yordis Prieto 1:08:49
exactly why I ban AGENTS.md because most of the developers are not actually putting metrics around whatever it takes, and I don't care which take it is. It's just like okay, where your metrics are, or whatever the heck you're saying, because otherwise you may be just affecting everybody else, based on whatever random thing you have in your computer. So and in the agents skills, same deals. Like the platform that I'm building, the WebAssembly stuff is like agents skills is in a cloud in a database that you don't you don't go through pipelines of pipelines of like approvals like, but the time you approve you approve it is already too late and like let's move on is broken.
Bailey Hayes 1:09:29
Exactly yes well and I think everybody's gonna have artisanally crafted things for their environment. I'm not gonna I'm not gonna set a tight requirement for what you have to do, but also I have a
Yordis Prieto 1:09:42
tool for you that you may like it, and will be amazing if you use it and give me feedback on the topic. Hold on, if you want to take a look. If not, it's fine. Here is pre V1, so so expect breaking changes from time to time. Oh yeah,
Bailey Hayes 1:10:06
skills eval is a really cool idea. This is what you're talking about on whether or not your change actually was valuable.
Yordis Prieto 1:10:11
Yes. So too long didn't read this s*** ton of like tools that you throw AI to the problem and you go through a series of you know criterias and like things like that it helps you to say okay what is happening here.
Bailey Hayes 1:10:27
So I think for a lot of this stuff, what I'll do is like I would put it in a ricochet or Cosmonic Labs or you know those kind of places and just say like hey this developer stack this is what my stack looks like if you want to copy me and be the same, but also you know, I'm just going to come up with hard and fast rules in our contributing, and hopefully that is enough for any anybody's stack to reach success.
Yordis Prieto 1:10:53
Yep.
Bailey Hayes 1:10:53
Okay, and Aditya added your recommendation here for an adversarial review, this is what I want in the agent. This is the type of thing that I want in the AGENTS.md, which is like before you ever create a PR, have done an adversarial review of it ahead of time. That's that's the main rules. Like so many things in the first one shot are buggy stuff that the AI is so good at finding and fixing, and you know I'm not adding any value if me manually going and doing soul and then I'm catching all the low hanging fruit, right? Like the value add I have is like does it fit in the architecture or not? Is this going to help us? Is this going to be maintainable?
Can we keep it over? I never want to tell you, oh, you forgot to drop the context or drop something or you, you know, whatever. This this didn't have test coverage. Like, that's not where I add value in today's world. Your LLM adds that value.
Aditya Salunkhe 1:12:02
It's very true. Also, you mentioned you mentioned mentioning which AI LLM model actually helped create the whole pull request, so you can have a refuting agent that's a completely different one. That would be pretty good. So if it's done with soul, we can just refute it with an A. I think yeah,
Yordis Prieto 1:12:26
I don't I don't want to give marketing to any of this company, brother. Like if that's the case, then like well we already
Aditya Salunkhe 1:12:32
mentioned made by Claude or made OpenAI or some of those trailers.
Bailey Hayes 1:12:40
The language I'm going to use is "We welcome it. If you're willing to add it, we will use it. If you aren't willing to add it, or you don't want to, or it doesn't do it automatically for you because you banned it in other places and it just happens to always be banned globally, fine. So I'm trying to come up with the most permissive thing that also lets me give you get also the best experience. So I think if you're willing to tell me which model you use, I'm going to use a different one for flavor.
Aditya Salunkhe 1:13:08
That's fair.
Yordis Prieto 1:13:09
And the other thing is, if Bailey is running same tools, right? For example, I'm I'm contributing to the T3 Code, right? The editor. Just give me the exact same tools that you use in your computer. I can just run it myself, primarily because like if there are obvious things that I can catch, I can catch it, right? And still there is enough randomness that is Bailey's computer that I still need it. But like if I can reduce it a little bit, much better. So if you can share those things, it's it's easy for people to see. Okay, I know she's gonna run these things. I'm just gonna run it myself to know what it will come out of it.
Bailey Hayes 1:13:47
And and again, that's where I think I'm gonna make my agentic stack just like a ricochet folder, you know, and be like, look, if you want, if you've added ricochet, here's here's what it's gonna look like. But but I add a lot more. At least, I mean, we can talk endlessly about agentic workflow because it changes every day. But for me, right now in wasmCloud, where I'm able to review most folks is I, I always do a human review, and then I make myself write a sentence about what the PR is to my agent. So I write a sentence for how I understand it, and all my feelings about it. Like, hey, I see that it's touching this area, and we've had regressions there.
Like, is the test coverage good? Did it? Is it going to be hard to maintain? Is there any security risk that I need to look at? How many allocations were here? Is there performance stuff? And I understand all this is basically a skill, so I have the skill for that part of it, right? But the first part of like, did I understand it? That's just something that I'm doing to make sure that I've primed my brain to understand it, and then I have my agent go and check me, and then and then we spend some. But like I'm not going to prescribe that to anybody else. That's the. It's very easy to turn off your brain with these tools, and that's what I do to make me have my brain turned on to review a PR and start a conversation with my agent about a PR and get to a point where we eventually merge.
Yordis Prieto 1:15:19
Yeah, and one I share with you two tools there, by the way, that I would like you, since you're in Rust, to share feedback. And the last two is I've been trying to, yeah, this one is important. So, which is can I solve programming problems? This one has
Bailey Hayes 1:15:40
the CVE, yours. Sorry, the
Yordis Prieto 1:15:44
Weaver. Yeah, like this is the dev tool for generating metrics, spans, logs. But put aside the tool. The point is like, can I represent most of my code to be codegen out of static information, JSON schema, YAML files, and stuff like that. Because like that's what I've been trying to chase with these tools. It's like, yo, we don't need computer science here. Like this is just stylistic thing that pick one. You're not even writing it anymore, so it doesn't really matter as long as it's readable and type safe and stuff like that. So I've been I've been throwing tools at it. Like yeah, these are the rules I put there so far. I only regret one of them, but the rest are actually like it.
Bailey Hayes 1:16:31
And you're gonna tell us which one, so we have to find
Yordis Prieto 1:16:33
it. I'm not gonna tell you. If you told me which one I regret, I kind of regret it now. Looking at it's like I hate it, but I also hate it. Alternative, but fine. But the rest are good. Like, but like you know, can stuff in Wasm be just static information? For example, if you go to Trogon, all the all my errors in my system right now are extremely static. Like there are no even. You showed me
Bailey Hayes 1:17:02
that before.
Yordis Prieto 1:17:03
Yeah. So like errors are static, right? Like log metrics, other stuff are static, right? So like, yes, it becomes a tool that is understanding data problem. Is no like programming. Is no syntax. It's none of that stuff, right? I mean, obviously the YAML syntax, but like I try to do that.
Bailey Hayes 1:17:23
Yeah, I just wanted to call out at least in wasmCloud, in case folks aren't aware, we have been adding all of the pedantic lints basically steadily one at a time to the repo, and then this applies to like the entire repo at least for Rust, right? So you don't. It's not just it's clippy, but there's also rustc lints as well here. So that's basically I've been team. Don't you dare comment about style in a PR for like over a decade. You know, like I prescribed to Titus Winters talk at CppCon. I think 2014 was when I first saw him talk about this, and that was when he introduced clang-format. And and then I've been following that way of life since then.
So yeah, getting the AI tools to that point is no brainer to me, like that. That's what we got to do. But but also just like canonically, I want it as close to the actual crate or whatever it is as we can get it, and then we'll add more layers on top.
Yordis Prieto 1:18:35
Yep.
Bailey Hayes 1:18:37
Well, hey, I really appreciate all the feedback. I hope we've landed in a good place. I think the it sounds like we now have a new big rock, and it's define our AI tool stack, which is cool. And the only problem with it is that it will never be done, and so it will not be done this quarter. It is one that I, it's yet another that's going to just roll with us from quarter to quarter, but that's okay. And yeah, thanks everybody for joining. If you didn't get a chance to talk, please send me a DM, or I'm happy to jump on another call and dive into more. I hope you know we've been going back and forth about AI slop and stuff, and I hope it's very clear to everybody on the call.
Everybody here is using AI tools. It is welcome. We're going to come up with a way to make sure that it's even more welcome and easier for everybody to contribute. And and you know, I think everybody we all recognize a lot of people don't speak English as a first language. Sometimes I don't think I do either because I'm from the south and I actually change my accent when I talk to y'all. So I think important to know that it's also totally okay to be using tools to communicate. Just finding the right ways to do that and keep everybody. Moving fast, so
Yordis Prieto 1:20:02
yeah, my boss, he I speak in prompts with him. It started as a joke, and now it became an actual reality. It's like send me a prompt, or what I do with him is like, okay, I'm gonna I'm gonna ramble around, and I'm gonna send you a wallpaper that is actually me trying to write it down, and it's gonna jump all over the place because my brain actually does that. I suck at writing blog posts because of that. But you take your essay, linearize the thought, please.
Bailey Hayes 1:20:31
You you should see what Liam sends me. Same. I can pick on him. I hear him.
Yordis Prieto 1:20:38
Oh my god! My brain is social. Like I cannot think linear. I'd be like, and then this thing appears, but I go, oh, because this thing appeared now. This is a wallpaper problem of that you also need to pay attention. Now that's it. I went back. I have such a bad time thinking linear. Like I can't.
Bailey Hayes 1:21:00
Well, I can't either, but I unfortunately have to go to another meeting where I'm going to meet people in person in real life. Eric and Mindy are going to be in my town, so I'm going to go see them. They're at my park right now, which is 10 minutes away, so I got to start walking. So thank you again, everybody that joined. If there are other things that you want to add or stuff to talk about, we can throw it on the community call for next week, and also just issues welcome.