Second post!
Sadly, I don't have too much to report. I'm in the middle of making my skill system to tie into my little boops. However, I thought that it would be a little too boring (and difficult to extend) if I just make the scripts and referenced them in a component somewhere.
The thing I decided to try and do instead was to use reflection to grab all instances of the skill class I might make in the future. I'm not planning to go so insane on skill classes that this becomes a headache for me in the future, but it would also be nice to not have to worry about hooking up every single skill I make every time I make them. It's just nice to try and follow the open-and-close principle when I can.
So how I did this was by creating a ISkill interface with a cast method and other small methods that will get overridden by the concrete implementations of the class. I then used a SkillFactory to initialize the reflection pattern. I'll show you that piece of code right below :

So the factory just created the concreate implementations of the ISkill interface and saves them to a dictionary.
I tried this out with a bunch of dummy classes and it seems to be hooked up fine. I actually got a little fancier and made the ordering of notes to play into a scriptable object so that I could edit that on the fly.

Like that! So I don't need to go in and hard code it every time I want the notes to change. I also thought it'd probably be a good idea to have a slot for prefabs and names so that I can switch out casting effects and have a key to find these with. To get even fancier I made this scriptable object into an addressable asset. Just in case I ever want to change things on the fly if I ever end up wanting to do that after releasing the game (if that ever happens).
I know this was just a bunch of code considerations, but I think it's important. I built myself a solid base from which I can start adding skills and very simply shove the cast input to this scriptable, while confidently just casting it from a central skill manager without having to worry about writing code to initialize a new skill every time I make one. And it's actually pretty hard to find anything on code architecture online. I know mine is not the best by a long shot, but I think it's kinda cool to read and talk about these kinda things.
This was a bunch of fun to think through and make. And although there was a bit of trial and error involved, I enjoyed myself quite a bit. Hopefully I actually make some mock skills with effects next time.