Protected ReadonlyinstallProtected ReadonlyinstallProtected ReadonlyloggerReadonlyonProtected ReadonlyonProtected ReadonlytoDispose this object.
The qualifier comes from the marker, chosen once when the plugin was installed or linked, so installing another plugin never renames these skills.
ProtectedinitProtectedlistOrdered by identifier so the contributed roots do not depend on readdir order. A backend
failure yields no roots rather than propagating, so every other skill tier keeps loading.
One skill root per installed Agent Plugin, carrying the qualifier that keeps two plugins' skills from colliding by name. Only plugins carrying our provenance marker are contributed: qualification needs an identifier, and a hand-placed directory has none until it is linked.