¿Qué es una directiva AngularJS?

He pasado bastante tiempo leyendo la documentación de AngularJS y varios tutoriales, y me ha sorprendido bastante lo inaccesible que es la documentación.

Tengo una pregunta simple y con capacidad de respuesta que también puede ser útil para otras personas que buscan obtener AngularJS:

¿Qué es una directiva AngularJS?

Debe haber una definición simple y precisa de una directiva en algún lugar, pero laSitio web de AngularJS ofrece estas definiciones sorprendentemente inútiles:

En la pagina de inicio:

Las directivas son una característica única y poderosa disponible en AngularJS. Las directivas le permiten inventar una nueva sintaxis HTML, específica para su aplicación.

En eldocumentación del desarrollador:

Las directivas son una forma de enseñar nuevos trucos HTML. Durante DOM las directivas de compilación se comparan con el HTML y se ejecutan. Esto permite a las directivas registrar el comportamiento, o transformar el DOM.

Y hay unserie de charlas sobre directivas que, irónicamente, parecen suponer que el público ya entiende lo que son.

¿Alguien podría ofrecer, para una referencia clara, una definición precisa de lo que es una directiva que explica:

Lo que es (ver el clarodefinición de jQuery como ejemplo)¿Qué problemas prácticos y situaciones se pretende abordar?Qué patrón de diseño incorpora, o alternativamente, cómo encaja en el supuesto MVC /MVW Misión de AngularJS.

Respuestas a la pregunta(5)

Su respuesta a la pregunta