A skill should only document behaviour the LLM didn't/couldn't exhibit on its own.
So you take your failed case (eg. working with gdb or whatever), write a skill and then test for that failed case.
So you take your failed case (eg. working with gdb or whatever), write a skill and then test for that failed case.
I imagine many fail cases can burn a lot of tokens/usage/time because failing LLMs can be very persistent. Maybe some upper bound (turn count, timeout) would help too.