Skills seem to be a huge leverage point working with agents but they remain fuzzy in how they should be constructed. I like to build my skill using the agent at the end of a messy session where I successfully accomplished a goal. Then I have the agent extract the working steps into a skill that I can easily invoke again.