The skill fails at step 3. Fix step 3. Don't regenerate the whole thing.
Web agent skills — reusable procedures for navigating websites, filling forms, clicking buttons (arXiv:2603.20340). Current approaches generate skills as monolithic scripts. When a skill fails, the entire script is regenerated. This is wasteful: most of the procedure is correct; only one step broke.
ContractSkill structures each skill as a contract: explicit preconditions (what must be true before execution), step specifications (what each action does and expects), postconditions (what must be true after), recovery rules (what to do when a step fails), and termination checks (when to stop). The contract makes each step independently verifiable.
When a skill fails, the contract pinpoints the fault to a specific step. The repair is a minimal patch to that step, not a full regeneration. The repaired skill retains all correct steps — only the broken one changes. Jump from 9.4% to 37.5% success on VisualWebArena.
The repaired skills transfer between models. A skill debugged using one vision-language model works on a different one, because the contract specifies what should happen (model-independent) rather than how the model does it (model-dependent). The contract is the portable artifact; the model is the executor.
The structural insight: treating skills as opaque scripts makes them fragile — any failure requires complete regeneration. Treating skills as structured contracts makes them repairable — failures are localized, fixes are targeted, and the structure transfers across models. The contract is the difference between “retry from scratch” and “fix what broke.” The same distinction applies to any executable procedure: specifications that decompose into independently verifiable steps are maintainable; monolithic scripts are disposable.