It sounds like it might not be the right move for you. If you do go into a Ph.D, I do think it's important to have a clear idea of what you want out of it.
I did a Ph.D and have no regrets - for me, it resulted in more interesting work and rapid advancement once I was in industry. I picked up a lot of relevant knowledge on distributed systems (not know-how or techniques, but generally how to think about them and evaluate them) that comes in use every day. Exploring the (vast) space of potential system designs and figuring out how to evaluate them is something that I picked up in the Ph.D and is incredibly useful in my job. A Ph.D doesn't give you that knowledge on a platter, but it can give you the time and resources to learn and practice it. I think a lot of engineers in the industry are... not great... at doing this and in many cases don't even realize it.
Anyway, doing a Ph.D. gives you a big blank space to fill in with self-directed learning and research. For some people that's a golden opportunity. If your goal is to be taught skills that you will directly apply in your future career, a Ph.D is a crapshoot. You might get that if you have a hands-on advisor in the right area.
One thing I've noticed is that whether work is interesting is as much a function of the individual, environment and team as it is of the work itself. A curious individual who is engaged with their teammates and is given autonomy to do their job in the best way they see fit is likely to be a lot more engaged in a "dull" task than someone who is working in an "exciting" area without those things.
Including a regression test is an excellent heuristic. I also like to extend that to testing closely related things where there are test gaps. The benefit is not just that it will catch the exact same bug recurring, but that you get more tests in areas of the code with higher bug density and more test gaps.
It's not a perfect heuristic but it's an easy one to get a team aligned on. IMO the biggest challenge in scaling a team and maintaining code health is setting standards like this that are easy to explain and easy to maintain. There's an unfortunate human tendency to cut corners in the absence of clear rules here (even the best engineers will do this in many circumstances).
You can always exercise judgement on the cost/benefit of adding the test though, it's just a good default.
Things like maintainability are hard to objectively define and measure, but still important. If you let issues pile up a medium-to-large team working on a codebase for a few years can turn it into something completely incomprehensible and and impossible to chain.
I make a lot of comments along those lines when I review code and I think overall it's helped significantly with technical debt and it would be very limiting to not be able to use my judgement on these matters when reviewing code. I definitely always provide some explanation, e.g. some examples of why the test coverage is inadequate, or why the code seems more complex than necessary. But this still relies to a significant degree on the reviewer's intuition and judgement.
I think it's reasonable to look at code and ask "will someone be able to understand this in a year's time?" or "how likely is someone to introduce a bug when changing this logic?". You won't get totally objective answers but I think you get some worthwhile insight.
There are various measures you can look at as heuristics - cyclomatic complexity, that sort of thing. I think also requiring good test coverage steers things in the right direction since it's often easier to simplify the code than to achieve full coverage.
The "finding bugs" criteria also doesn't really work if the code is so complex that a reviewer can't convince themselves of its correctness.
I did a Ph.D and have no regrets - for me, it resulted in more interesting work and rapid advancement once I was in industry. I picked up a lot of relevant knowledge on distributed systems (not know-how or techniques, but generally how to think about them and evaluate them) that comes in use every day. Exploring the (vast) space of potential system designs and figuring out how to evaluate them is something that I picked up in the Ph.D and is incredibly useful in my job. A Ph.D doesn't give you that knowledge on a platter, but it can give you the time and resources to learn and practice it. I think a lot of engineers in the industry are... not great... at doing this and in many cases don't even realize it.
Anyway, doing a Ph.D. gives you a big blank space to fill in with self-directed learning and research. For some people that's a golden opportunity. If your goal is to be taught skills that you will directly apply in your future career, a Ph.D is a crapshoot. You might get that if you have a hands-on advisor in the right area.
One thing I've noticed is that whether work is interesting is as much a function of the individual, environment and team as it is of the work itself. A curious individual who is engaged with their teammates and is given autonomy to do their job in the best way they see fit is likely to be a lot more engaged in a "dull" task than someone who is working in an "exciting" area without those things.