I ran a skill migration and nothing broke. Or so I thought.

Break 3 in my migration diary noted that skills degraded silently. This is the deep dive.

I copied six Claude Code skills to OpenCode. Every file loaded. Every name appeared in the available skills list. Every description matched. No errors, no warnings, no friction. Weeks later, I noticed things were off — skills behaving differently than expected, models I didn't choose running expensive operations, context bleeding where it shouldn't have. Nothing told me anything was wrong. I had to read the frontmatter side by side to figure out why.

Here's the audit framework I built to prevent that, and the five-minute test that tells you exactly which skills port cleanly and which ones break.

Why the converters miss what matters