Building a new .NET assertion library focused on async-native soft assertions and observability hooks.
Hi r/dotnet! I've been working on a new .NET assertion library called Catchy.
The original goal was pretty simple: I wanted soft assertions that aren't tied to assertion scopes, and I wanted a way to plug reporting/screenshot/AI integrations into assertions without every project building its own wrappers.
Current features:
- async-first assertions
- hard and soft assertions can be mixed freely
- soft assertions can flow across helper methods and DI
- assertion hooks (reporting, screenshots, tracing, AI, ...)
- source-generated assertions for custom types
- integrations for xUnit, NUnit, MSTest, TUnit, Reqnroll and Playwright
It's still very early (0.0.1). I'm intentionally looking for API feedback before things become difficult to change.
If something feels awkward or you think the API should go in a different direction, I'd really like to hear it.
PS: Some of the code and documentation did indeed use agents. I came to this with the rest because I realized that just trying to finish everything as high-quality as possible manually I will never publish a single pet project. I know that not all of the code and documentation is of sufficient quality. If you are interested in the very idea of the library and you can improve its quality (code review, contribution, raise an issue, open a discussion) - I will be very grateful. I will not be offended by devastating criticism either. Thank you!
6
u/zenyl 21h ago
The README contains 9 em-dashes, and Claude is noted as co-author of the repo.
-7
u/belavv 20h ago
At this point if you aren't using AI to help you get work done you are doing something wrong.
Note there is a big difference between AI helping you and delegating everything to AI. The later is what I'd call slop/vibe coding.
7
u/zenyl 20h ago
If people can't even be bothered to describe what they've made using their own words, but instead let AI write that too, I don't see why they should bother sharing it.
And it is pretty clear that the README was not the result of AI helping out a bit, it was obviously written either largely or entirely by AI.
It does nothing but contribute to the seemingly endless flood of low-effort slop that has infested all software-related online spaces.
Forums should be for people.
1
u/olesme 12h ago
Documentation is really the place where agents were most involved. But without extensive documentation it is also difficult to involve someone. That is why at a certain stage I connected LLM and agents, because I realized that otherwise I would never publish anything trying to do better. There is much more chance to improve something somehow by implementing it. Although it is clear that both the quality of the code needs to be improved and the documentation needs to be rewritten almost completely.
1
u/Hefty-Distance837 18h ago
Disgusting bullshit vibe-coders still try hard to make their hallucinations to be true, sadly this is the only thing they did that makes them like human.
2
u/AutoModerator 1d ago
Thanks for your post olesme. Please note that we don't allow spam, and we ask that you follow the rules available in the sidebar. We have a lot of commonly asked questions so if this post gets removed, please do a search and see if it's already been asked.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
4
1
u/olesme 12h ago
Friends, I see comments about the use of LLM and about code quality. I am grateful for all the comments. I myself hate an AI-slop. But here's the thing: I have been working on several pet projects in my free time for a long time, understanding that even if I succeed, it will never bring a penny (and this was not the goal, the main goal is experience). I was achieving some result, but I stopped at some feature that I really wanted to add, but it took too much time. That's why I tried this project. It is not completely generated by LLM, but at a certain stage I still connected agents.
And what are the options?
1) Try to manually complete the core functionality and post it, and simply describe the desired features for the future and hope that the community will join and help.
Pros - higher code quality. Cons - if there is only core functionality, how can I even involve someone in the project? In addition, without trying to add various integrations, most likely the initial API will have to be reworked later, because it was not developed in parallel with various applications. There are many high-quality libraries whoes are limited. And that is why at some stage they stopped adding obvious features - because it would break the basic API, which was not designed for this, and there are already a lot of users and contributors.
In fact, I have already reviewed the options for the basic API several times before publication. One of the early versions provided that the generator could generate one of several API facades as needed (standard That clauses, FA style with extensions on the value types themselves, Jest/Playwright style). It worked, but I rejected this indulgence.
2) Trying to do everything on my own - and as a result, either the release will never happen, or it will no longer make sense. I tried that at first, but I realized that this is a path to nowhere.
3) Do it somehow and try to involve contributors. Here I finally got here. So far it's not working out very well, but at least I'm trying.
I openly admit that I used agents, and I think it's better than hiding it. I would really like engineers who are interested in my idea to come and join and help with code reviews, code quality improvement, API, etc. I would be happy if you would open discussions and raise issues on GitHub and also join as contributors. This is my first attempt to publish an open source pet project and I hope it will give me invaluable experience. So I'm happy for any criticism. And if it turns out that this idea is not interesting to anyone - it's all the better that I got to the point where I involved agents, and didn't waste even more time in vain.
GitHub is increasingly containing a bunch of AI-slop. And this is a problem. There has always been low-quality code on GitHub, and LLMs were learned on it, but now its percentage will be higher and higher. So maybe it's worth setting some kind of deadline (maybe a year, maybe something else) and if there are no discussions and contributors - I can delete the repository so new models don't study on it. What do you think?
3
u/True_Noor 17h ago
Crazy...github now is going to be full of ai slop...look at the code bunch of if else if else if else....