1. A method comprising: selecting a context from a plurality of contexts associated with a plurality of hierarchical software constructs, the context defining a class of content modules included in a construct of the plurality of hierarchical software constructs; retrieving context data for each content module of a plurality of content modules for each software construct of a plurality of hierarchical software constructs, the context data including a primary context identifier identifying a primary context in which the content module was created or modified, at least one secondary context identifier identifying additional secondary contexts in which the content module is permitted to be included, a restriction identifier identifying a class of contexts in which the content module may be used, and a reference count value indicating a number of times the content module is referenced in the plurality of hierarchical software constructs; determining, based on the primary and the at least one secondary context identifiers, whether each content module is permitted in the selected context; determining the reference count value as the number of times the content module is used in the plurality of hierarchical software constructs; storing the reference count value in association with the context data in at least one memory; identifying the content of the content module as valuable content if the reference count value exceeds a threshold value; generating a collection of content modules from the class of content modules based on the selected context, the collection including the plurality of content modules permitted in the selected context based on the determination; and storing the collection in the at least one memory.