A taxonomy of package roles across all kinds of package managers, inspired by Sajaniemi's roles of variables. Just as variables have behavioral roles (stepper, gatherer, flag), packages play distinct roles: Application, Library, Framework, Plugin, Wrapper, Polyfill, Compiler, Types, Generator, Data, Asset, Schema, Meta, Runtime, Service, Driver, and Infrastructure. Each role describes how a package fits into a system — its relationship to calling code, its lifecycle, and its risk profile. Understanding these roles has practical implications: data packages shouldn't be pinned tightly, framework upgrades carry more risk than library upgrades, and types/compilers/generators rarely belong in production dependencies. Some packages occupy multiple roles simultaneously, and the intersection is often more informative than either role alone.