What problem does it solve? Changing the agent specification format risks breaking every published agent and every client git repository that stores a copy of it. This Skill encodes the rules for evolving app/agents/spec.py safely so old stored specs keep loading instead of failing with 500 errors. ## Core Features & Use Cases - Change Cost Table: Classifies each spec change (add, rename, remove, narrow a rule, move to a capability) by its migration cost and the required validator pattern. - Migration Invariants: Enforces idempotent mode="before" validators, publish-time refusal of invalid configurations, and data migrations shipped in the same change as narrowed rules. - YAML Round-Trip Contract: Preserves spec ordering and UUID string conversion so spec == AgentSpec.from_yaml(spec.to_yaml()) always holds. - Use Case: When adding a new field or tightening a validation pattern in the agent spec, follow this Skill to bump SPEC_VERSION, write the migration, and add a test loading a verbatim old document. ## Quick Start Use the agent-spec skill to add a new optional field to the agent spec in app/agents/spec.py with the correct default and migration test.